2016-08-08 68 views
0

ich Skript sieht wie folgt aus:Autohotkey Control in versteckten cmd

DetectHiddenWindows, On 
Run,%comspec% /k, , hide, pid2 
WinWait, ahk_pid %pid2% 
ControlSend, ,winscp.com script="path\to\script.txt", ahk_pid %pid2% 
sleep,3000 
;-- close hidden DOS window -- 
Process, Close, %pid2% 
Process, WaitClose, %pid2% 

Aber das Problem ist manchmal die Control Werken und Recht Briefe senden und es manchmal die doppelten Spalten ändern man Einzel- und manchmal die winscp ändern. com zu winscp> com und etc, die ich nicht weiß, woher diese Briefe manchmal kommen So eine Idee, wie Sie dieses Problem beheben und es immer die richtigen Briefe senden, denn das frustriert mich wirklich und bringt das ganze Skript durcheinander.

Vielen Dank

Max

+0

Statt dieses Codes verwenden Sie einfach 'run, winscp.com script = "Pfad \ script.txt auf \" ,, hide' und fügen Sie' exit' in Ihrem 'script.txt'. – wOxxOm

+0

Dies ist eine großartige Lösung, aber ich möchte immer noch erkennen, wenn der Prozess das Hochladen aller Daten abgeschlossen hat, um das Skript fortzusetzen, auch bin ich eine Art neugierige Person, die gerne wissen würde, warum dieses Problem aufgetreten ist, wenn jemand weiß. Vielen Dank. –

+0

Fügen Sie einfach eine Variable 'pid' hinzu und verwenden Sie' process, waitclose' genau so, wie Sie bereits haben. – wOxxOm

Antwort

0
DetectHiddenWindows, on 

Run, winscp.com script="path\to\script.txt", , hide, pid2 

Sleep 6000 

Process, close, %pid2% 
Process, WaitClose, %pid2% 

Das ist der beste Weg für mich war alles Upload, um sicherzustellen, ist getan und bereit, mit dem Skript, um fortzufahren.

Hinweis: Ich könnte den RunWait mit/c Befehl verwenden (die den Schlafbefehl ersetzen) zusammenfassen ganzes Skript, das ich oben zur Verfügung gestellt habe, aber ich hatte Angst, es gibt immer noch das gleiche Problem, ich bevorzugte direkt direkt mit und mit Schließen und WaitClose-Befehle verarbeiten.

Max