- Offizieller Beitrag
Hi,
nach langem Zögern habe ich mich nun doch mal überwunden und mich etwas intensiver mit der Nutzung von Objekten unter AutoIt befasst.
Und ich war angenehm überrascht, wie simpel damit etliche Probleme zu lösen sind. Der große Vorteil auch für alle jene, die bisher recht wenig mit Objekten-Klassen-Methoden am Hut haben: MS bietet mit dem Gratistool "WMI Code Generator" eine top Unterstützung. Man kann damit den WMI-Code generieren und dann fast 1:1 in AutoIt umsetzen.
Mal ein Bsp., Überwachen ob "Notepad.exe" gestartet wird und dann eine Meldung ausgeben:
WMI Code
strComputer = "."
Set objSWbemServices = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!" & _
"\\" & strComputer & "\root\cimv2")
Set objEventSource = objSWbemServices.ExecNotificationQuery( _
"SELECT * FROM __InstanceCreationEvent " & _
"WITHIN 10 " & _
"WHERE TargetInstance " & _
"ISA 'Win32_Process' " & _
"AND TargetInstance.Name = 'notepad.exe'")
Set objEventObject = objEventSource.NextEvent()
Wscript.Echo "Notepad.exe wurde soeben gestartet."
Alles anzeigen
und dasselbe in AutoIt
$strComputer = "."
$objSWbemServices = ObjGet("winmgmts:" & _
"{impersonationLevel=impersonate}!" & _
"\\" & $strComputer & "\root\cimv2")
$objEventSource = $objSWbemServices.ExecNotificationQuery( _
"SELECT * FROM __InstanceCreationEvent " & _
"WITHIN 10 " & _
"WHERE TargetInstance " & _
"ISA 'Win32_Process' " & _
"AND TargetInstance.Name = 'Notepad.exe'")
$objEventObject = $objEventSource.NextEvent()
MsgBox(0, '', "Notepad wurde soeben gestartet.")
Der WMICodeCreator listet alle auf dem PC zu findenden Klassen auf, mit den zur Verfügung stehenden Eigenschaften. Ein Mausklick und der Code ist generiert. Und mit wenigen Änderungen ist er dann in AutoIt verfügbar.
Der Vorteil, den ich hier sehe ist, dass man somit wesentlich tiefer in die Systemereignisse "eintauchen" kann bzw. einige Aufgaben sich einfacher lösen lassen als mit anderen AutoIt-Mitteln.
Ich bin mal so frei und häng den WMICodeCreator mit an - das erspart euch den GenuineCheck.
Übrigens - das Proggi bedarf keiner Installation. Entpacken und ausführen.