[英]How to know in C# that program is running on Parallels on a Mac running XP SP2 or VmWare on a Mac running Windows 7
I am using the following code to indicate if code is executed on virtual machine. 我正在使用以下代码来指示代码是否在虚拟机上执行。
using (var searcher = new ManagementObjectSearcher("Select * from Win32_ComputerSystem"))
{
using (var items = searcher.Get())
{
foreach (var item in items)
{
string manufacturer = item["Manufacturer"].ToString().ToLower();
Console.WriteLine("Manufacturer: " + manufacturer);
Console.WriteLine("Model: " + item["Model"].ToString());
if ((manufacturer == "microsoft corporation" && item["Model"].ToString().ToUpperInvariant().Contains("VIRTUAL"))
|| manufacturer.Contains("vmware")
|| item["Model"].ToString() == "VirtualBox")
{
Console.WriteLine("Manufacturer: " + manufacturer);
Console.WriteLine("Model: " + item["Model"].ToString());
}
}
}
}
Console.Read();
But in addition to that I have to know if it is a Parallel or VnWare. 但是除此之外,我还必须知道它是Parallel还是VnWare。 Any idea?
任何想法? Thank you
谢谢
Base on the answer provided Final code will be like that, it works for me ok: 根据提供的答案,最终代码将是这样,它对我有效:
using (var searcher = new ManagementObjectSearcher("Select * from Win32_ComputerSystem"))
{
//TODO: Have to verify the difference between Parallel and Vm
using (var items = searcher.Get())
{
foreach (var item in items)
{
string manufacturer = item["Manufacturer"].ToString().ToLower();
string model = item["Model"].ToString().ToLower();
if (manufacturer.Contains("parallels") && model.Contains("parallels"))
{
Console.WriteLine("Parallels Detected");
}
else if(manufacturer.Contains("vmware"))
{
Console.WriteLine("VMWARE Detected");
}
}
}
}
Running this on VMware Fusion yields: 在VMware Fusion上运行此命令可获得:
Manufacturer: vmware, inc.
制造商:vmware,inc。
Model: VMware Virtual Platform型号:VMware虚拟平台
Based on this , it looks like you would be safe checking whether Manufacturer or Model contains the string "parallels" to determine if it's running on parallels. 基于此 ,看起来您可以安全地检查Manufacturer或Model是否包含字符串“ parallels”,以确定它是否在并行环境中运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.