为编程爱好者分享易语言教程源码的资源网

网站首页 > 易语言相关 > 易语言例程 正文

易语言判断系统是虚拟机还是物理机源码

三叶资源网 2017-02-17 01:29:24 易语言例程 1681 ℃ 0 评论

主要原理:利用易语言,取出Dos的结果,再来判断“Virutal”特殊关键字字符,若寻找到关键字字符“Virutal”的话就是虚拟机,反之没有关键字字符“Virutal”就是物理机。

.版本 2
.支持库 console
.支持库 EThread

.程序集 程序集1
.程序集变量 控制台, 控制台对象
.程序集变量 hw, 整数型

.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行

控制台.输出 (, , 假, 8, 1, “此系统仅用于测试,禁止应用于其他![程序若无法启动,请以管理员身份运行!]By:NVK|QQ:2459846709” + #换行符 + #换行符)
控制台.输出 (, , 假, 11, 1, “正在进行相关操作,请等待片刻”)
启动线程 (&login, , hw)
启动线程 (&tike, , )
标准输入 ()
返回 (0)  ' 可以根据您的需要返回任意数值

.子程序 login

.计次循环首 (10, )
    控制台.输出 (, , 假, 11, 1, “.”)
    延时 (1500)
.计次循环尾 ()

.子程序 tike

.判断开始 (寻找文本 (Take_the_Dos_Execution_Results (), “Virutal”, , 假) ≠ -1)
    强制结束线程 (hw)
    控制台.输出 (, , 假, 15, 1, #换行符 + #换行符 + “反馈回执结果:当前模式为”)
    控制台.输出 (, , 假, 10, 1, “虚拟机”)
    控制台.输出 (, , 假, 15, 1, “模式” + #换行符 + #换行符)
    控制台.输出 (, , 假, 8, 1, “单击_任意键退出程序”)
.默认
    强制结束线程 (hw)
    控制台.输出 (, , 假, 15, 1, #换行符 + #换行符 + “反馈回执结果:当前模式为”)
    控制台.输出 (, , 假, 10, 1, “物理机”)
    控制台.输出 (, , 假, 15, 1, “模式” + #换行符 + #换行符)
    控制台.输出 (, , 假, 8, 1, “单击_任意键退出程序”)
.判断结束


.子程序 Take_the_Dos_Execution_Results, 文本型, , 这个子程序返回的,是Dos 的回执结果,Dos命令:Systeminfo | findstr /i "System Model"
.局部变量 SECURITY_ATTRIBUTES, SECURITY_ATTRIBUTES
.局部变量 STARTUPINFO, STARTUPINFO
.局部变量 PROCESS_INFORMATION, PROCESS_INFORMATION
.局部变量 hWrite, 整数型
.局部变量 hRead, 整数型
.局部变量 txt, 字节集
.局部变量 len, 整数型
.局部变量 EXIT, 整数型
.局部变量 retext, 文本型

SECURITY_ATTRIBUTES.nLength = 12
SECURITY_ATTRIBUTES.lpSecurityDescriptor = 0
SECURITY_ATTRIBUTES.bInheritHandle = 1
CreatePipe (hRead, hWrite, SECURITY_ATTRIBUTES, 0)
STARTUPINFO.cb = 68
STARTUPINFO.dwFlags = 位或 (#STARTF_USESHOWWINDOW, #STARTF_USESTDHANDLES)
STARTUPINFO.wShowWindow = #SW_HIDE
STARTUPINFO.hStdOutput = hWrite
STARTUPINFO.hStdError = hWrite
.如果 (取操作系统类别 () ≤ 2)
    CreateProcess (0, “command.com /c Systeminfo | findstr /i ” + #引号 + “System Model”, 0, 0, 真, 0, 0, 0, STARTUPINFO, PROCESS_INFORMATION)  ' 代码
.否则
    CreateProcess (0, “cmd.exe /c Systeminfo | findstr /i ” + #引号 + “System Model”, 0, 0, 真, 0, 0, 0, STARTUPINFO, PROCESS_INFORMATION)  ' 代码
.如果结束

CloseHandle (hWrite)
.判断循环首 (len ≠ -1)
    PeekNamedPipe (hRead, 0, 0, 0, len, 0)
    .如果 (len ≠ 0)
        txt = 取空白字节集 (1024)
        ReadFile (hRead, txt, 1023, len, 0)
        retext = retext + 取字节集数据 (txt, #文本型)
    .否则
        GetExitCodeProcess (PROCESS_INFORMATION.hProcess, EXIT)
        .如果真 (EXIT ≠ #STILL_ACTIVE)
            CloseHandle (hRead)
            跳出循环 ()
        .如果真结束

    .如果结束
    处理事件 ()
.判断循环尾 ()
返回 (retext)

@晓时候

易语言判断系统是虚拟机还是物理机源码.png

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
websocketPOST例程图像缩放登陆查询动画源码kktv取群列表酷Q起名软件抖音脚本炫彩设计器工程易语言调试助手APP加密COMHOOK类模块源码原子锁sqlcipher数据库Access链接表企鹅FM评论PCQQeWOW64Ext
最新评论