检查程序是否运行在VMWare虚拟机里

原创 2007年10月08日 08:35:00

{
    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 下编译通过!

 

相关文章推荐

shell awk 检查程序是否执行

1.Linux中怎样判断某一进程是不是运行? 2.Linux中怎样倒排序查看,服务器各类进程数? 3.Linux中怎样利用awk检查程序是否执行? 通过shell结合awk可以很好判断某一进...
  • dub_lys
  • dub_lys
  • 2016年02月16日 14:42
  • 262

编写一个用栈来检查程序代码是否遗漏括号的程序

功能: 此程序的功能检验代码中的每一个右花括号、右方括号及右圆括号与对应的左括号是否成对出现。 如:序列"[()]"是合法的,但"[(])"是错误的。 并报告出错误出现在那一行。 ...

判断程序是否在虚拟机中运行

判断系统是否为虚拟机环境,可以根据很多固定的硬件标识(磁盘的型号、主板型号、BIOS型号等)或者虚拟机中进程(一般在虚拟机中安装系统后,虚拟机会自动安装一些辅助性的程序,例如vmtool.exe)。 ...
  • hckMe
  • hckMe
  • 2015年01月27日 10:29
  • 2265

优化VMware提高虚拟机运行速度的技巧

vmware虚拟机如何设置不当的话会造成运行速度慢,并影响主机运行,甚至会出现死机。 一下是提高vmware虚拟机运行速度的几个技巧, 文章来自:http://blog.csdn.net/shan...

MAC上搭建Windows Phone 8 开发环境——VMware Fusion下Win8 “无法安装Hyper-V, 某个虚拟机监控程序正在运行”问题解决的办法

最近在试着在mac os上搭建Windows Phone 8的开发调试环境,使用的是VMware Fusion + Win8.1的虚拟环境。 点开VS2013, new 了一个helloWorld,...

VMware虚拟机运行时出错:cannot open the disk xxxxxxxxxxx.vmdk. failed to lock the file

在windows下运行linux中创建的虚拟机时出错,无法运行。 错误提示大概为: cannot open the disk xxxxxxxx.vmdk or one of the snapshot ...

vmware中的虚拟机Ubuntu16.04和win10物理机还有通过网线相连的zedboard(运行有Linux)连接为一个局域网

我想要把虚拟机中的Ubuntu和zedboard连接为一个局域网怎么办呢?让我头疼了几天,找到了办法。 vmware中的虚拟机Ubuntu16.04和win10物理机还有通过网线相连的zedboar...

如何在esxi 6上面套嵌运行虚拟机(kvm、xen、esxi6、vmware workstation、Qemu)

在 VMware ESXi 虚拟机上运行虚拟机,被称为多层虚拟或者嵌套虚拟机(Nested VMs)。如果只有一台电脑想测试多节点 OpenStack 环境的话,使用 VMware ESXi 虚拟几个...
  • lic95
  • lic95
  • 2015年09月27日 08:50
  • 3215
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:检查程序是否运行在VMWare虚拟机里
举报原因:
原因补充:

(最多只允许输入30个字)