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

主要原理:利用易语言,取出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

相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注