WMIを.Net Framework の DLL から呼び出してもエラーにならない

WMIを DLL から呼び出すと 0x80041032 になる

試しに、.Net Framework で DLL作ってみた

[DllExport]
unsafe static public void ShowBioSInfo(char* ser)
{
 // Win32_BIOSクラスを作成する
 using (ManagementClass managementClass = new ManagementClass("Win32_BIOS"))
 {
  // Win32_BIOSオブジェクトを取得する
  managementClass.Get();
  // 権限を有効化する
  managementClass.Scope.Options.EnablePrivileges = true;

  // WMIのオブジェクトのコレクションを取得する
  using (ManagementObjectCollection managementObjectCollection = managementClass.GetInstances())
  {
   // WMIのオブジェクトを列挙する
   foreach (ManagementObject managementObject in managementObjectCollection)
   {
    Console.WriteLine($"SerialNumber: {managementObject["SerialNumber"]}");
    Console.WriteLine($"BIOSVersion: {managementObject["BIOSVersion"]}");
    Console.WriteLine($"Description: {managementObject["Description"]}");
    Console.WriteLine($"Manufacturer: {managementObject["Manufacturer"]}");
    Console.WriteLine($"Name: {managementObject["Name"]}");
    Console.WriteLine($"SMBIOSBIOSVersion: {managementObject["SMBIOSBIOSVersion"]}");
    Console.WriteLine($"Version: {managementObject["Version"]}");
    Console.WriteLine($"Status: {managementObject["Status"]}");
    managementObject.Dispose();
   }
  }
 }
}

今度はエラーにならない…解せぬ・ω・

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です