; Version 1.7 vom 27-1-2015 Global $start_dir Global $jahr Global $warten Global $FensterTitle = " " ;Global $test Global $pfad_dir Global $pfad_programm Global $pfad_temp Global $sach = "01" Const $programm_name = 'han_lager_neuberechnung' Global $wu1 = "0101" Global $wo1 = "0199" Global $wu2 = "0201" Global $wo2 = "0299" Global $wu3 = "0301" Global $wo3 = "0699" Global $wu4 = "0701" Global $wo4 = "0899" Global $wu5 = "0901" Global $wo5 = "0999" Global $wu6 = "1001" Global $wo6 = "1099" Global $wu7 = "1101" Global $wo7 = "1499" Global $wu8 = "1501" Global $wo8 = "2199" Global $wu9 = "2201" Global $wo9 = "2299" Global $wu10 = "2301" Global $wo10 = "2599" Global $wu11 = "2601" Global $wo11 = "2999" Global $wu12 = "3001" Global $wo12 = "3199" Global $wu13 = "3201" Global $wo13 = "3599" Global $wu14 = "3601" Global $wo14 = "4099" Global $wu15 = "4101" Global $wo15 = "4299" Global $wu16 = "4301" Global $wo16 = "4399" Global $wu17 = "4401" Global $wo17 = "5099" Global $wu18 = "5101" Global $wo18 = "6999" Global $wu19 = "7001" Global $wo19 = "7199" Global $wu20 = "7201" Global $wo20 = "7499" Global $wu21 = "7501" Global $wo21 = "8099" Global $wu22 = "8101" Global $wo22 = "8399" Global $wu23 = "8401" Global $wo23 = "8499" Global $wu24 = "8501" Global $wo24 = "8799" Global $wu25 = "8801" Global $wo25 = "8999" Global $wu26 = "9001" Global $wo26 = "9199" Global $wu27 = "9201" Global $wo27 = "9999" Global $zaeler #region --- Internal functions Au3Recorder Start --- Func _WinWaitActivate($title,$text,$timeout=0) WinWait($title,$text,$timeout) If Not WinActive($title,$text) Then WinActivate($title,$text) WinWaitActive($title,$text,$timeout) EndFunc #endregion --- Internal functions Au3Recorder End --- local $a = @ScriptDir if stringlen($a) <= 3 Then $Start_dir = Stringleft ($a, 2) Else $Start_dir = @ScriptDir EndIf ;MsgBox (0, "Start Dir", $start_dir) $jahr = StringRight (@year, 2) ; braucht man eigentlich hier nicht Const $ini_pfad = $start_dir &'\' & $programm_name & '.ini' ;MsgBox (0, "ini_pfad", $ini_pfad) $pfad_dir = iniRead ($ini_pfad, "10", "pfad_dir", "default") $pfad_programm = iniRead ($ini_pfad, "10", "pfad_programm", "default") $pfad_temp = iniRead ($ini_pfad, "10", "pfad_temp", "default") $warten = iniRead ($ini_pfad, "10", "warten", "default") $sach = iniRead ($ini_pfad, "10", "sach", "default") $zaeler = iniRead ($ini_pfad, "10", "zaeler", "default"); eigentlich könnte man darauf verzichten aber so hat man die Möglichkeit vnicht bei 1 zu beginnen. ;MsgBox (0, "Ini Reads kontrollieren", $zaeler) FileDelete ($pfad_dir & "\err*.log") Func Func_start_wawib () FileDelete ($pfad_temp & "\$*.$$$") Sleep (500) EnvSet("SACHBEAR", $sach) ;EnvUpdate ( ) ;local $k = EnvGet("SACHBEAR") ;MsgBox (0,"Sach", $k) run ($pfad_programm) Sleep (4000) ; warten bis wawi geladen ist if WinExists ( $pfad_programm, "" ) Then ; prüfen ob Wawi geladen, durch fensterabfrage, dann fenster in den vordergrund holen. _WinWaitActivate($pfad_programm,"") ;$FensterTitle = WinGetTitle("") ; hier einlesen Fenstertitel um den für den späteren abgleich zu haben. Wird, da eigentlich siinnlos auskommentiert EndIf ;Sleep (100) ;Send("{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}") Sleep (200) Send("{ENTER}") ; für bestätigen sachbearbeiter Sleep (500) Send("asdfg123") ; bei eingabe maximaler datenlänge entfällt das ernter pasw = maximal Sleep (4000) ; hier längere Pause, der Handel läd einstellungen if WinExists ( $pfad_programm, "" ) Then ; prüfen ob Wawi geladen, durch fensterabfrage, dann fenster in den vordergrund holen. _WinWaitActivate($pfad_programm,"") EndIf Send ("g") ; wechseln zur Eingabeseite für Neuberechnung Sleep (500) Send ("g") Sleep (500) ; MsgBox (0,"Fenstername", $FensterTitle) EndFunc Func Func_eingabe () $aa = eval ("wu" & $zaeler) ; eval dynamisiert die Variable, d.h. variable als variablenname das sind die Warengruppen bereiche die einzugeben sind $ab = eval ("wo" & $zaeler) if WinExists ( $pfad_programm, "" ) Then ; prüfen ob Wawi geladen, durch fensterabfrage, dann fenster in den vordergrund holen. _WinWaitActivate($pfad_programm,"") EndIf Send("{ENTER}") Sleep (500) Send("{ENTER}") Sleep (500) Send ($aa) Sleep (500) Send ($ab) Sleep (500) ;MsgBox (0,"Fenstername", $FensterTitle) Send("{F9}") local $i1 for $i1=1 to $warten ; warten kommt aus der ini Sleep (10000) ;hier warten bis der Handel seine Arbeit erledigt hat if not FileExists ($pfad_temp & "\$*.$$$") or not WinExists ( $pfad_programm, "" )then FileDelete ($pfad_temp & "\$*.$$$") $i1= $warten + 1 EndIf Next if WinExists ( $pfad_programm, "" ) Then $zaeler = $zaeler + 1 _WinWaitActivate($pfad_programm,"") EndIf Sleep (800) Send("{ESC}") Sleep (800) Send("{ESC}") Sleep (800) Send("j") Sleep (500) ;MsgBox (0,"Wawi zu ?", "Wawi ist zu?") EndFunc do Sleep (500) Func_start_wawib () Func_eingabe () ;MsgBox (0,"Zähler ?", $zaeler) until $zaeler = 28 ; 28 ist wo27 --> 27 +1 also eins mehr als variablen mit warengruppen