Problem mit Process Close (AHK 2.x)

Stelle Fragen zur Automatisierung von Spielen

Moderator: jNizM

RainerHelmut
Posts: 4
Joined: 07 Jun 2022, 12:01

Problem mit Process Close (AHK 2.x)

08 Jun 2022, 07:01

Guten Tag in die Runde.

Ich habe mir für ein Spiel mehrere AHK Hotkey Scrippte geschrieben die auch einzeln funktionieren. Nun möchte ich diese 5 Routinen mittels eines Menue auswählen anstatt das jeweils aktuelle mittels
Windows (Ich nutze win11, AHK 2) klick auf exit zu schließen, und ein anderes auf zu rufen. Alle Routinen belegen mir die F1 Taste und sind jeweils an die Vorgaben im Spiel angepasst.
Ich habe es mit Process, Close, und Datei.Exe, als auch mit Process, Close, PID versucht- aber die Instanzen laufen dennoch weiter. Auch mit Process Waitclose und If Process Exit abfragen ist es nicht gelungen die Scripte zu beenden. Der Name der Scripte ist so aufgebaut: 8 tasten 2380.exe (compiliert). Das Menu ansich arbeitet, soll heißen der Auswahlkasten erscheint, aber es werden alle Routinen gestartet (statt der ausgewählten), und leider keiner der Routinen gelöscht. Ich denke einen elementaren Gedankenfehler zu haben und bitte um Rat bzw. Hilfe.

Beispiel einer der Routinen:

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
SetKeyDelay, 50 ; Tstendruckzeit da sonst zu schnell für Spiel
a=2300; Variable die den Cooldown den es im Spiel gibt abwartet

F1::
Send 1
Sleep a
Send 2
Sleep a
Send 3
SoundBeep, 500, 100; kurzer Signalton das das Script fertig ist.
Das Menu selber in aktueller Version:

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
DetectHiddenWindows 1
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
a=2380 ; Cooldowntimer (Wartezeit)
; Script soll Hotkey mit verschiedenen Hotkey´s via Menu setzen. Angedacht für das Spiel Final-Fantasy 14, Belegt das Komandomenu1 in Game 1-8, Sowie Komandomenu8(ALT+Taste)
: Script Barde (8 tasten 1-8 mit 2380 milisekunden Wartezeit) plus ALT-1 (gameinternes makro ruft den barden mit begleiter)
; Script Heiler ( 2 scripte a 3 Tasten mit je 2383 ms Wartezeit) plus ALT-2
; Script Paladin (6 Tasten mit 2383 ms Wartezeit) plus ALT-3
; Script Schnitter (2 scripte a 3 tasten mit je 2383 ms Wartezeit) plus ALT-6
; Script Blaumagier (6 tasten 1-6 mit 2380 ms WSartezeit) plus ALT-4
; Sript Emute benötigt kein tastenscript, nur Aufruf des Blaumagier via ALT+5
;
;Hotkey F12 startet das Auswahlmenu
;
; variabel für PID
;
NeuePID1 = 0
NeuePID2 = 0
NeuePID3 = 0
NeuePID4 = 0
;---------------------------------------------------------------------
; Menu Definition
;---------------------------------------------------------------------

Menu, MyMenu, Add, Barde, MenuHandler
Menu, MyMenu, Add, Heiler, MenuHandler
Menu, MyMenu, Add, Blau, MenuHandler
Menu, MyMenu, Add, Paladin, MenuHandler
Menu, MyMenu, Add, Schnitter, MenuHandler
Menu, MyMenu, Add, Emute, MenuHandler
;
return  ; End of script's auto-execute section.
;
MenuHandler:
;
goto %A_ThisMenuItem%

;
; --------------------------------------------------------------------------------
; subroutinen
;----------------------------------------------------------------------------------
Barde:
;
; auf barde schalten
	Process, Close, NeuePID2
	Process, Close, NeuePID3
	Process, Close, NeuePID4
	send "!1"; (ingame ruft das !1 das makro des Komandomenue 8 auf, das seinerseit  den Barden samt seinem Layout und Begleittier aktiviert)
	Run "C:\Users\Raine\Desktop\Autohotkey scripte\8 tasten 2380.exe",,, NeuePID1
;
; auf Heiler schalten
Heiler:
	Process, Close, NeuePID1
	Process, Close, NeuePID4
	send "!3"
	Run "C:\Users\Raine\Desktop\Autohotkey scripte\3 tasten 2383 heil.exe",,, NeuePID
	Run "C:\Users\Raine\Desktop\Autohotkey scripte\3 tasten 2383.exe",,, NeuePID
;
; auf Paladin schalten
Paladin:
	Process, Close, NeuePID1
	Process, Close, NeuePID2
	Process, Close, NeuePID3
	send "!4"
	Run "C:\Users\Raine\Desktop\Autohotkey scripte\6 tasten 2383.exe",,, NeuePID4
;
; auf Schnitter schalten
Schnitter:
	Process, Close, NeuePID1
	Process, Close, NeuePID4
	send "!6"
	Run "C:\Users\Raine\Desktop\Autohotkey scripte\3 tasten 2383 heil.exe"
	Run "C:\Users\Raine\Desktop\Autohotkey scripte\3 tasten 2383.exe"
Emute:
;
; auf Emute schalten (alle Komandomenue ingame mit Emute belegt, der Charakter ist ein Rotmagier
	Process, Close, NeuePID1
	Process, Close, NeuePID2
	Process, Close, NeuePID3
	Process, Close, NeuePID4
	send "!5"
	SoundBeep, 900, 100
Return
;
F12::Menu, MyMenu, Show  ; Hotkey für Menue
[Mod edit: [code][/code] tags added.]
KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Re: Problem mit Process Close

08 Jun 2022, 07:14

versuch mal so:
Process, Close, % NeuePID1

oder so:
Process, Close, %NeuePID1%

Und was sagt ErrorLevel?
RainerHelmut
Posts: 4
Joined: 07 Jun 2022, 12:01

Re: Problem mit Process Close (AHK 2.x)

08 Jun 2022, 09:35

Danke für die Antwort, habe ich wie folgt eingebaut :

Code: Select all

; auf barde schalten
	Process, Close, % NeuePID2
	Process, Close, % NeuePID3
	Process, Close, % NeuePID4
	MsgBox  % ErrorLevel
	send "!1"
	Run "C:\Users\Raine\Desktop\Autohotkey scripte\8 tasten 2380.exe",,, NeuePID1
[Mod edit: [code][/code] tags added.]
Rückgegeb wird eine 0, es werden alle subs aufgerufen, und keines geschlossen.
KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Re: Problem mit Process Close (AHK 2.x)

08 Jun 2022, 10:29

ErrorLevel wird auf 0 gesetzt
a) wenn ein Prozess nicht gefunden wurde
oder
b) nicht terminiert werden konnte


Zu a)

Code: Select all

Run "C:\Users\Raine\Desktop\Autohotkey scripte\8 tasten 2380.exe",,, NeuePID1
MsgBox, % NeuePID1
Was zeigt MsgBox an?

Zu b)
Laufen deine Programme mit Admin Rechte, muss du deine Script ebenfalls mit Admin Rechten starten.
KHA
Posts: 403
Joined: 21 Aug 2018, 11:11

Re: Problem mit Process Close (AHK 2.x)

08 Jun 2022, 11:23

Ups, erst jetzt gesehen AHK 2x
Ich selbe nutze AHK2 noch nicht, aber es Befehl musste wie folgt lauten:
ProcessClose NeuePID1
RainerHelmut
Posts: 4
Joined: 07 Jun 2022, 12:01

Re: Problem mit Process Close (AHK 2.x)

08 Jun 2022, 12:02

Danke -

zu a) die MsgBox zeigt 14200

zu b) Adminrechte werde ich antesten.

Der ahk download verwies zwar auf AHK 2.0, allerdings sagt die Hilfe das ich 1.1.34.03 nutze. Gebracht hat mich darauf die genannte Syntax zu Process das zusammengeschriebene führt zur Meldung das es den Befehl nicht gibt.
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Problem mit Process Close (AHK 2.x)

08 Jun 2022, 14:53

Ist das Absicht das alle deine Labels: (bis auf das Letze) nicht mit einem 'Return' abgeschlossen werden? Damit läuft jeder Sprung in ein Label anschließend "nach unten durch".

Code: Select all

F11::Goto Label2
F12::Goto Label

Label:
MsgBox % "Hallo Welt!"

Label2:
MsgBox % "Hallo Ilja!"
Return
RainerHelmut
Posts: 4
Joined: 07 Jun 2022, 12:01

Re: Problem mit Process Close (AHK 2.x)

09 Jun 2022, 06:48

Absicht nicht, ich habe jetzt jedes label: mit einem Return abgeschlossen. Effekt, er lädt nicht mehr alle Runs - schon mal ein Schritt weiter, danke Dir. Allerdings wenn ich via Menu wechsle lädt er zwar die richtigen neuen Hotkey´s, schließt jedoch die bereits geladenen immer noch nicht. Ich hatte das mit den Adminrechten noch nicht umgesetzt und werde das jetzt mal nachholen.
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Problem mit Process Close (AHK 2.x)

09 Jun 2022, 09:45

Ich vermute das es einen Ab-/Reihenfolge-Fehler gibt. Das hier funzt...

Code: Select all

#SingleInstance, Force

nApp := A_WinDir "\System32\notepad.exe"
pApp := A_WinDir "\System32\mspaint.exe"

F9::Run,% nApp,,,nID

F10::
   Process, Close,% nID
   Run,% pApp,,,pID
   Return
F11::
   Process, Close,% pID
   Run,% nApp,,,nID
   Return

F12::
   Process, Close,% pID
   Process, Close,% nID
   Return
Mehrmaliges Ausführen von F9 öffnet hier mehrere Editor-/notepad-instances. Jedoch kann F12 nur die Letzte schließen, da die Variable mit jedem Aufruf der App neu überschrieben wird!

Return to “Spiele”

Who is online

Users browsing this forum: No registered users and 49 guests