Hiho,
Ich habe ein Script für die Arbeit geschrieben um Täglich 1 mal einen Berricht auszudrucken. Nun empfinde ich die Funktion irgendwie als unsauber. Habt ihr Verbesserungsvorschläge? Danke schonmal.
Spoiler anzeigen
Func Autodrucken($programmpfad, $Programmtitel, $dateipfad, $Druckername)
[/autoit] [autoit][/autoit] [autoit]ShellExecute($programmpfad, "", "", "", @SW_MAXIMIZE)
WinWait($Programmtitel)
WinActivate($Programmtitel)
WinWaitActive($Programmtitel)
Send("^o")
Sleep(1000)
;Send($datei1pfad)
ControlSetText("Archiv öffnen ...", "", 1148, $dateipfad)
Sleep(500)
ControlClick("Archiv öffnen ...", "", "Button2")
Sleep(1500)
;Send("{Enter}")
While 1
If WinActive("Archivübersicht:") Then
$hComboBox = ControlGetHandle("Archivübersicht:", "", "ComboBox1")
ControlCommand("Archivübersicht:", "", 1013, "showdropdown")
Sleep(500)
ControlCommand("Archivübersicht:", "", 1013, "SelectString", 'Täglich')
Sleep(500)
ControlCommand("Archivübersicht:", "", 1012, "showdropdown")
Sleep(500)
ControlCommand("Archivübersicht:", "", 1012, "SelectString", $inidatum)
Sleep(500)
Send("{Enter}")
ControlClick("Archivübersicht: ", "", "Button5") ;Funktioniert Plötzlich einfach nicht mehr. (Deswegen das Send Enter)
Sleep(500)
ExitLoop
Else
WinActivate("Archivübersicht:")
EndIf
WEnd
Sleep(1500)
While 1
If WinActive('Gruppenauswahl') Then
;Send("{Enter}")
ControlClick('Gruppenauswahl', "", "Button4")
ExitLoop
Else
WinActivate('Gruppenauswahl')
EndIf
WEnd
Sleep(1500)
While 1
If WinActive('JUMO PCA 3000 ') Then
Send("^p")
ExitLoop
Else
WinActivate('JUMO PCA 3000')
EndIf
WEnd
Sleep(1500)
If WinGetTitle('Drucken Kanäle') Then
While 1
If WinActive('Drucken Kanäle') Then
;Send("{Enter}")
ControlClick('Drucken Kanäle', "Diagramm", "Button4")
Sleep(500)
ControlClick('Drucken Kanäle', "Dargestellter Zeitbereich", "Button6")
Sleep(500)
ControlClick('Drucken Kanäle', "", "Button8")
ExitLoop
Else
WinActivate('Drucken Kanäle')
EndIf
WEnd
EndIf
Sleep(1500)
While 1
If WinActive('Drucken') Then
ControlCommand("Drucken", "", 1139, "showdropdown")
Sleep(500)
ControlCommand("Drucken", "", 1139, "SelectString", $Druckername)
Sleep(500)
ControlClick('Drucken', "OK", "Button10")
ExitLoop
Else
WinActivate('Drucken')
EndIf
WEnd
Sleep(4000)
ProcessClose("pca177u.exe")
EndFunc ;==>Autodrucken
[/autoit]Eigenartiger weise will die der Befehlt in Zeile 29 nicht mehr Funktionieren.