{
This function can be used to determine whether your program is
running from within VMWare.
For more information please refer to the article at:
http://www.codeproject.com/system/VmDetect.asp
}
function TForm1.IsInsideVMWare: Boolean;
var
rc: Boolean;
begin
rc := False;
try
asm
push edx
push ecx
push ebx
mov eax, 'VMXh'
mov ebx, 0 // any value but not the MAGIC VALUE
mov ecx, 10 // get VMWare version
mov edx, 'VX' // port number
in eax, dx // read port
// on return EAX returns the VERSION
cmp ebx, 'VMXh' // is it a reply from VMWare?
setz [rc] // set return value
pop ebx
pop ecx
pop edx
end;
except
on EPrivilege do rc := False;
end;
Result := rc;
end;
Delphi 2007 下编译通过!
本文提供了一个Delphi函数,用于判断程序是否在VMWare虚拟环境中运行。该函数通过特定的汇编指令来检查是否有来自VMWare的回复,从而确定当前运行环境。
2481





