Hi Leute,
ich nenne es schon eine "Welle an Misserfolg", mal wieder Problem, diesmal mit "TIDY - WMI - OBJ/COM"
Da ich Paar Funktionen fuer den Drucker-Managment sammle, wollte ich mir was ueber WMI zusammenschustern. (Es gibt da so wenig UDF's )
1.Problem: Kein ---> SyntaxCheckProd ausgefuehrt, keine Fehler
2.Problem: TIDY ausgefuehrt, es werden Fehler angezeigt, in Zeile 22 wird das UnderScore mit Leerzeichen versetzt, der Unterstrich ist aber kein Zeilenumbruch in Scite, sondern gehoert zu dem Befehl.
3.Problem: Das Script wird zwar ausgefuehrt und bringt die Aktion zu Ende, aber nur einmal, danach schiesst sich das Objekt aber ab.
4.Problem: Kann das Script nicht ueber das Systray beenden (Das ist aber fast kein Problem)
Ich keine Ahnung warum, muss deshalb hier Fragen
Code im Spoiler:
Spoiler anzeigen
;Ueberfacht den DruckerJob, wenn die zu druckende Seitenanzahl hoeher als die Vorgabe ist, wird der Druckauftrag abgebrochen und der Spooler geleert
$maxPages = 2 ; Limit der Seiten
$objWMIService = ObjGet("winmgmts:\\.\root\cimv2")
[/autoit] [autoit][/autoit] [autoit]$Wql = ("Select * from __InstanceOperationEvent within 1 where TargetInstance isa 'Win32_PrintJob'and TargetInstance.totalpages >" & $maxPages)
[/autoit] [autoit][/autoit] [autoit]$colEvents = $objWMIService.ExecNotificationQuery($Wql)
[/autoit] [autoit][/autoit] [autoit]ConsoleWrite("!========================================================" & @CRLF)
ConsoleWrite("Drucker wird ueberwacht")
ConsoleWrite("!========================================================" & @CRLF)
While 1
;Sleep(100)
$objEvent = $colEvents.NextEvent
With $objEvent.TargetInstance
ConsoleWrite("!========================================================" & @CRLF)
ConsoleWrite(.document & "auf" & .name & " geleoscht " & .totalpages & " Limit " & $maxPages & @CRLF)
ConsoleWrite("!========================================================" & @CRLF)
.Delete_; Hier Underscore Problem mit TIDY
[/autoit] [autoit][/autoit] [autoit]ConsoleWrite("!========================================================" & @CRLF)
ConsoleWrite(" Drucken beendet " & @CRLF)
ConsoleWrite("!========================================================" & @CRLF)
EndWith
WEnd
[/autoit]