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(); } } } } |
今度はエラーにならない…解せぬ・ω・
Comments