Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Laufwerke aulesen per WMI (Windows 10) (https://www.delphipraxis.net/189969-laufwerke-aulesen-per-wmi-windows-10-a.html)

RandomDD 14. Aug 2016 14:33


Laufwerke aulesen per WMI (Windows 10)
 
Bis Windows 7 habe ich per WMI immer die Laufwerke auslesen können.
Seit Windows 10 funktioniert das nicht mehr. Ich bekomme nur noch Laufwerke des Typs 2 (Diskette) ausgelesen.

Der Hauptcode zum Auslesen ohne Klimbim drumherum:

Delphi-Quellcode:
 CoInitialize(nil);

 // ...
const
 WbemUser = '';
 WbemPassword = '';
 WbemComputer = 'localhost';
 wbemFlagForwardOnly = $00000020;
var
 FSWbemLocator: OleVariant;
 FWMIService: OleVariant;
 FWbemObjectSet: OleVariant;
 FWbemObject: OleVariant;
 oEnum: IEnumvariant;
 iValue: LongWord;

 // ...
 
 FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
 FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
 FWbemObjectSet := FWMIService.ExecQuery('SELECT * FROM Win32_LogicalDisk', 'WQL', wbemFlagForwardOnly);
 oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumvariant;

 // ...
 try
  i := 0;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
   begin
    try
     case FWbemObject.DriveType of
      2, 3, 4, 6:
       begin
        showmessage(string(FWbemObject.Caption));
        showmessage(IntToStr(FWbemObject.DriveType));
       end;
     end;
    finally
     FWbemObject := Unassigned;
    end;
   end;
 finally
  CoUninitialize;
 end;
 // ...
Hat sich bei Windows 10 diesbezüglich etwas geändert? :roll:
Oder liegt es daran, dass das Windows 10 in einer VM steckt?

Benedikt Magnus 14. Aug 2016 15:04

AW: Laufwerke aulesen per WMI (Windows 10)
 
Zitat:

Zitat von RandomDD (Beitrag 1344877)
Oder liegt es daran, dass das Windows 10 in einer VM steckt?

Klappt es denn in einer VM mit Windows 7?

RandomDD 14. Aug 2016 15:29

AW: Laufwerke aulesen per WMI (Windows 10)
 
Ok die Frage hat sich damit von selbst beantwortet.
Hatte keine Win7-VM zur Hand und habe gerade schnelle eine ins Leben gerufen.

WMI scheint in VMs wohl nicht zu funktionieren bzw. nur teilweise.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz