Programme starten

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Tux
Posts: 4
Joined: 14 Mar 2019, 06:58

Programme starten

14 Mar 2019, 07:04

Folgendes möchte ich machen, leider bekomme ich das nicht hin. :(

Run, D:\Programme\test\test.exe
RunWait, D:\Programme\test\test.exe
Run, D:\Programme\Test2\test2.exe
ExitApp

Programm 1 und 2 starten, aber sobald Programm 2 startet, wird Programm 3 ausgeführt und nicht erst wenn ich es schließe :-(

Was mache ich falsch?
User avatar
jNizM
Posts: 2367
Joined: 30 Sep 2013, 01:33
GitHub: jNizM
Contact:

Re: Programme starten

14 Mar 2019, 08:52

Run Startet ein externes Programm.
RunWait wartet, bis das Programm endet, bevor es fortfährt.
(https://ahkde.github.io/docs/commands/Run.htm)

Was du machen kannst, ist nach dem Run, mit Process Wait zu warten, bis es eine gültige PID zurück gibt und dann Programm #3 zu starten.
(https://ahkde.github.io/docs/commands/Process.htm)

Code: Select all

Run, D:\Programme\Test1\Programm1.exe
Run, D:\Programme\Test2\Programm2.exe
Process, Wait, Programm2.exe, 20         ; wartet maximal 20 Sekunden
Run, D:\Programme\Test3\Programm3.exe
ExitApp
[AHK] 1.1.30.01 x64 Unicode | [WIN] 10 Pro (Version 1803) x64 | [GitHub] Profile
Donations are appreciated if I could help you
Tux
Posts: 4
Joined: 14 Mar 2019, 06:58

Re: Programme starten

15 Mar 2019, 01:48

Erst mal Danke für die Antwort, ich glaube nicht, dass das funktionieren wird, denn Programm1 und 2 ist das Gleiche welches ich 2x starten möchte.
just me
Posts: 5950
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Programme starten

15 Mar 2019, 02:56

Wenn RunWait ein Programm startet aber nicht auf das Ende wartet ist es normalerweise so, dass es nur kurz als eigener Prozess existiert und dann entweder einen neuen Prozess startet oder als weiterer Thread in einen vorhandenen Prozess integriert wird. Beides lässt AHK annehmen, dass der Prozess beendet wurde.

Du kannst nun versuchen, das Programm zuerst mit RunWait zu starten und davor einen Timer zu aktivieren, der die zweite Instanz startet (ungetestet):

Code: Select all

Prog1 := "D:\Programme\test\test1.exe"
Prog2 := "D:\Programme\test\test2.exe"
...
SetTimer, StarteProg1, -250
RunWait, %Prog1%
Run, %Prog2%
...
StarteProg1:
Run, %Prog1%
Return
Eine Alternative könnte Folgendes sein (ungetestet):

Code: Select all

Prog1Pfad := "D:\Programme\test\"
Prog1Name := "test1.exe"
Prog2Pfad := "D:\Programme\test\"
Prog2Name := "test2.exe""

Run, %Prog1Pfad%%Prog1Name%
Sleep, 200
Run, %Prog1Pfad%%Prog1Name%
Sleep, 200
Process, Wait, %Prog1Name%,  3 ; max. 3 Sekunden auf Prozess warten
If (ErrorLevel = 0) {
   MsgBox, 16, Fehler!, Das Programm %Prog1% konnte nicht gestartet werden!
   ExitApp
}
Process, WaitClose, %Prog1Name%
WinWaitClose, ahk_exe %Prog1%
Run, %Prog2Pfad%%Prog2Name%
Tux
Posts: 4
Joined: 14 Mar 2019, 06:58

Re: Programme starten

15 Mar 2019, 03:07

Wie soll ahk unterscheiden zwischen Programm1 und Programm2 wenn es das Gleiche ist?
Programm 3 soll erst ausgeführt werden wenn Programm1 oder (und) 2 beendet sind.
just me
Posts: 5950
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Programme starten

15 Mar 2019, 03:35

Wenn Du Dir den Code genau anschaust, wirst Du feststellen, dass in beiden Versionen nur zwei unterschieliche Programm gestartet werden. Hast Du einfach mal ausprobiert, Deine Pfade und Namen einzusetzen?
Tux
Posts: 4
Joined: 14 Mar 2019, 06:58

Re: Programme starten

15 Mar 2019, 04:11

Ja hatte ich, aber Fehler in der Syntax gehabt.
Nr.2 funktioniert mit einem kleinen Schönheitsfehler, die Programme 1+2 werden im Hintergrund geöffnet, aber damit kann ich leben. :-)

So jetzt geht es so wie ich es mir gewünscht habe,mit WinActive alles gut.

Noch mal DANKE!

:bravo:

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 7 guests