Hallo
Habe immer wieder folgendes Problem. Ich nutze Autoit oft um in irgendwelchen Programmen etwas einzutragen das ich zuvor über AutoIt kopiert oder in einer Gui erstellt habe.
Habe sporadisch das Problem das die Daten nicht oder nicht richtig eingetragen werden.
Habe schon mit "Send" und "SendKeepActive" sowie "controlsend" alles mögliche getestet. Es passiert trotzdem sporadisch immer wieder.
Ich habe mal zwei unterschiedliche Beispiele angehangen in denen ich in Word in einem Formular etwas eintrage (passiert aber auch bei anderen Programmen):
Spoiler anzeigen
Opt("WinTitleMatchMode", 2)
$wordeingabeverzoegerung = 100
$mbnameanfang = "Word"
If Not WinActive($mbnameanfang,"") Then WinActivate($mbnameanfang,"")
WinWaitActive($mbnameanfang,"")
$handle_Word_Montagebericht = WinGetHandle($mbnameanfang,"")
sleep(300)
ControlSend($handle_Word_Montagebericht,"", "","Erster Text der in Word eingegeben werden soll")
sleep($wordeingabeverzoegerung)
ControlSend($handle_Word_Montagebericht, "", "","{tab}")
ControlSend($handle_Word_Montagebericht,"", "","Zweiter Text der eingegeben werden soll")
sleep($wordeingabeverzoegerung)
ControlSend($handle_Word_Montagebericht, "", "","{tab}")
Bei dem oben gezeigten Beispiel habe ich das Problem das aus irgendeinem Grund sporadisch von dem Eintrag die ersten Zeichen fehlen oder sogar das bei dem ersten groß geschriebenen Wort "erster" statt "Erster" eingetragen wird.
Mein zweiter Versuch:
Spoiler anzeigen
Opt("WinTitleMatchMode", 2)
$wordeingabeverzoegerung = 100
$mbnameanfang = "Word"
If Not WinActive($mbnameanfang,"") Then WinActivate($mbnameanfang,"")
WinWaitActive($mbnameanfang,"")
$handle_Word_Montagebericht = WinGetHandle($mbnameanfang,"")
sleep(300)
ClipPut("Erster Text der in Word eingegeben werden soll")
ControlSend($handle_Word_Montagebericht,"", "","^v")
sleep($wordeingabeverzoegerung)
ControlSend($handle_Word_Montagebericht, "", "","{tab}")
sleep($wordeingabeverzoegerung)
ClipPut("Zweiter Text der in Word eingegeben werden soll")
ControlSend($handle_Word_Montagebericht,"", "","^v")
sleep($wordeingabeverzoegerung)
ControlSend($handle_Word_Montagebericht, "", "","{tab}")
Bei diesem Beispiel habe ich das Problem das sporadisch statt dem Text nur ein "v" eingetragen wird. Also scheinbar bekommt der PC das "String" nicht mit.
Wie macht Ihr sowas? Gibt es noch eine ganz andere Lösung?
Gruß Autoirrer