从 .net 应用程序检测 Bootcamp
Detect Bootcamp from .net application
我目前正在开发一个用 WPF (C#) 编写的 Windows 应用程序,我希望仅当应用程序 运行 在 Apple 计算机上启用某些功能时 运行 Windows 通过训练营。我没有在任何地方找到任何关于它的问题,也没有在网上找到它的解决方案。是否可以检测到 Bootcamp?如果是,怎么做?
我从来没有想过查看BIOS Vendor信息。感谢凯尔的想法。这是其他人的解决方案:
首先,您需要添加 System.Management
作为参考。 您还需要添加这些命名空间:
using System.Management;
using Windows.System;
在此之后,您将需要以下代码来了解机器是否为Apple制造:
public bool IsMadeByApple()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_BIOS");
ManagementObjectCollection collection = searcher.Get();
string manufacturer = "";
foreach (ManagementObject obj in collection)
{
manufacturer = (string)obj["Manufacturer"]; // Will be "Apple Inc." if it's an Apple computer
}
return (manufacturer == "Apple Inc.");
}
你可以这样使用它:
MessageBox.Show(IsMadeByApple().ToString());
这将弹出一个消息框。如果是苹果电脑会显示"True",如果不是苹果电脑会显示"False".
This solution is only tested on an Early 2015 MacBook Pro running Bootcamp. This solution may not work on different models, but it will likely work.
我目前正在开发一个用 WPF (C#) 编写的 Windows 应用程序,我希望仅当应用程序 运行 在 Apple 计算机上启用某些功能时 运行 Windows 通过训练营。我没有在任何地方找到任何关于它的问题,也没有在网上找到它的解决方案。是否可以检测到 Bootcamp?如果是,怎么做?
我从来没有想过查看BIOS Vendor信息。感谢凯尔的想法。这是其他人的解决方案:
首先,您需要添加 System.Management
作为参考。 您还需要添加这些命名空间:
using System.Management;
using Windows.System;
在此之后,您将需要以下代码来了解机器是否为Apple制造:
public bool IsMadeByApple()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_BIOS");
ManagementObjectCollection collection = searcher.Get();
string manufacturer = "";
foreach (ManagementObject obj in collection)
{
manufacturer = (string)obj["Manufacturer"]; // Will be "Apple Inc." if it's an Apple computer
}
return (manufacturer == "Apple Inc.");
}
你可以这样使用它:
MessageBox.Show(IsMadeByApple().ToString());
这将弹出一个消息框。如果是苹果电脑会显示"True",如果不是苹果电脑会显示"False".
This solution is only tested on an Early 2015 MacBook Pro running Bootcamp. This solution may not work on different models, but it will likely work.