Hi,
kann mir einer der Autoit/WMI-Spezies mal erläutern, warum diese WMI-Abfrage (so ähnlich aus Forum) so lange dauert bzw.obs was anderes gibt??
Pro Festplatte bzw. Aufruf der Func USBPL() dauert es ca. 2-4 Sekunden
Hintergrund ist der, dass ich prüfen will, welche Festplatte eine USB-Platte ist, das unten aber Notifications "auswertet" und eher ungeeignet ist.
[autoit]
Func USBPL($sfpl)
Local $strComputer = "."
Local $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")
$colEvents = $objWMIService.ExecNotificationQuery("Select * From __InstanceOperationEvent Within 5 Where " & "TargetInstance isa 'Win32_LogicalDisk'")
[/autoit][autoit][/autoit][autoit]$objEvent = $colEvents.NextEvent
If $objEvent.TargetInstance.DriveType = 2 Then
Consolewrite("Drive " & $objEvent.TargetInstance.DeviceId & " is a removable Harddrive." & @CR)
Return True
EndIf
Return False
EndFunc
Diese Funktion müsste ich mehrmals aufrufen können, was ja aber zu lange dauert.
Aufrufen tue ich die in einer Schleife:
[autoit]
...
Switch DriveGetType($aLW[$i])
Case 'Fixed'
If USBPL($aDrives[$i]) = True Then
$iIcon = 4
Else
$iIcon= 5
EndIf
...
Ich hab mir auf MSDN den Wolf gesucht..