Zombeaver Posted December 4, 2020 Share Posted December 4, 2020 Even if that would work that's going to get real messy real quick since in reality the actual hotkey is going to be something like: 1Joy5::- 1Joy6::= 2Joy5::- 2Joy6::= 3Joy5::- 3Joy6::= 4Joy5::- 4Joy6::= 5Joy5::- 5Joy6::= 6Joy5::- 6Joy6::= 7Joy5::- 7Joy6::= 8Joy5::- 8Joy6::= Quote Link to comment Share on other sites More sharing options...
Zombeaver Posted December 4, 2020 Share Posted December 4, 2020 The below does what I need it to do, it's just a matter of how to work it into the script. It works if I put it in a separate script, but I'd like to keep everything involving the manuals in the manual script if possible (and not have 10+ lines for every single one of these). #if WinActive("ahk_exe Cdisplayex.exe") 1Joy5::- 1Joy6::= 2Joy5::- 2Joy6::= 3Joy5::- 3Joy6::= 4Joy5::- 4Joy6::= 5Joy5::- 5Joy6::= 6Joy5::- 6Joy6::= 7Joy5::- 7Joy6::= 8Joy5::- 8Joy6::= Return Quote Link to comment Share on other sites More sharing options...
JoeViking245 Posted December 5, 2020 Share Posted December 5, 2020 @jayjay is correct that a Return will stop the rest of the script. (just read that myself) @Zombeaver That simplification is awesome! Note, the Return is not necessary. Even with the 8 controllers. When a hotkey is assigned all on one line, a Return is implied. (just read that one too.) ? #If WinActive("ahk_exe CDisplayEX.exe") :*:z::- ;implied Return :*:x::= ;implied Return ...etc..... I just tested on a gui ahk that I had... and ya, putting it at the top buggers everything up! lol It opened, but only in the taskbar (inside the ^). Had to right click to and Exit to close it. I moved those 3 lines to just after the Gui, Show... line and it seemed to work. And as for you messy mess..... Ugh. lol There might be a way to somehow OR all those. (Not sure exactly how off the top of my head) Maybe even a For Loop... For x = 1 through 8, Do xJoy5, xjoy6..... Quote Link to comment Share on other sites More sharing options...
Zombeaver Posted December 5, 2020 Share Posted December 5, 2020 7 minutes ago, JoeViking245 said: Note, the Return is not necessary. Even with the 8 controllers. When a hotkey is assigned all on one line, a Return is implied. (just read that one too.) ? Ah okay, good to know. 7 minutes ago, JoeViking245 said: And as for you messy mess..... Ugh. lol There might be a way to somehow OR all those. (Not sure exactly how off the top of my head) Maybe even a For Loop... For x = 1 through 8, Do xJoy5, xjoy6..... Yeah, I'm kindof at a loss. I wish a simple "Joy5" and "Joy6" would work, but it doesn't, at least not consistently in my experience. The way AHK handles Joystick inputs is kindof garbage, and if you have multiple controllers connected at once (which many people do) then there's no way to know what it's going to call each one so I'm just adding in 8 to cover my bases (I figure if you have more than that at once you're on your own lol). I feel like you should be able to put all of them into some kind of IF loop for WinActive but I haven't gotten that to work correctly. It basically just turned them on and left them on when I messed with it before. I do have an additional script that always runs parallel, whether the manual script runs or not, so I could put them in that, but I feel kindof dirty about adding in code that's specifically for use with the manual stuff if the manual script isn't even being used. That just seems wrong. Quote Link to comment Share on other sites More sharing options...
jayjay Posted December 5, 2020 Share Posted December 5, 2020 (edited) if @JoeViking245 code works cool, id use that. With my last example you could replace thee loop with: Loop { if WinActive("ahk_exe Cdisplayex.exe") { SomeOtherFunction() } } Then at bottom of script the function would look something like: SomeOtherFunction() { if (GetKeyState("1Joy5") == 1) { Send - KeyWait 1Joy5 } if (GetKeyState("1Joy6") == 1) { Send = KeyWait 1Joy6 } } return Edited December 5, 2020 by jayjay Quote Link to comment Share on other sites More sharing options...
Zombeaver Posted December 5, 2020 Share Posted December 5, 2020 Hmm, okay I tried but no luck at the moment. The good news is that everything else is still working so that's a plus! Maybe I've done something wrong. I appreciate the help. Spoiler #SingleInstance Force #WinActivateForce Gui, +AlwaysOnTop Gui, -Caption ;removes caption and border Gui, color, Black ; sets window color Gui, Add, Picture, W%A_ScreenWidth% H%A_ScreenHeight%, Gui, Show, , Blocker SetTitleMatchMode, 2 WinWait, Cdisplayex WinSet, Transparent, 0, ahk_exe CDisplayEx.exe WinWait, RetroArch VICE WinActivate, RetroArch VICE Sleep, 200 Gui, -AlwaysOnTop Gui, Hide Hotkey, ~NumpadSub & NumpadEnter, Function1 Loop { IF ProcessExist("Retroarch.exe") { IF ProcessExist("CDisplayEX.exe") {} Else { Gui, Hide run, nomousy.exe Sleep, 500 Process, Close, nomousy.exe ExitApp } } Else { Winclose, Cdisplayex Gui, Hide run, nomousy.exe Sleep, 500 Process, Close, nomousy.exe ExitApp } Sleep, 1500 } ProcessExist(Name){ Process,Exist,%Name% return Errorlevel } Return Loop { if WinActive("ahk_exe Cdisplayex.exe") { Zoom() } } Function1: run, nomousy.exe /hide Gui, Show, , Blocker SetTitleMatchMode, 2 WinSet, AlwaysOnTop, On, ahk_exe CDisplayEx.exe WinActivate, Cdisplayex WinSet, Transparent, 0, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 20, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 40, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 60, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 80, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 100, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 120, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 140, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 160, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 180, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 200, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 220, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 240, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, Off, ahk_exe CDisplayEx.exe Gui, Hide Hotkey, ~NumpadSub & NumpadEnter, Function2 Gui, Show, NA, Blocker WinSet, AlwaysOnTop, Off, ahk_exe CDisplayEx.exe Return Function2: SetTitleMatchMode, 2 WinSet, Transparent, 240, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 220, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 200, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 180, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 160, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 140, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 120, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 100, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 80, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 60, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 40, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 20, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 0, ahk_exe CDisplayEx.exe Gui +AlwaysOnTop Sleep, 250 WinActivate, RetroArch VICE Sleep, 250 WinSet, AlwaysOnTop, On, ahk_exe CDisplayEx.exe Gui -AlwaysOnTop Gui, Hide run, nomousy.exe Hotkey, ~NumpadSub & NumpadEnter, Function1 Return Zoom() { if (GetKeyState("1Joy5") == 1) { Send - KeyWait 1Joy5 } if (GetKeyState("1Joy6") == 1) { Send = KeyWait 1Joy6 } if (GetKeyState("2Joy5") == 1) { Send - KeyWait 2Joy5 } if (GetKeyState("2Joy6") == 1) { Send = KeyWait 2Joy6 } if (GetKeyState("3Joy5") == 1) { Send - KeyWait 3Joy5 } if (GetKeyState("3Joy6") == 1) { Send = KeyWait 3Joy6 } if (GetKeyState("4Joy5") == 1) { Send - KeyWait 4Joy5 } if (GetKeyState("4Joy6") == 1) { Send = KeyWait 4Joy6 } if (GetKeyState("5Joy5") == 1) { Send - KeyWait 5Joy5 } if (GetKeyState("5Joy6") == 1) { Send = KeyWait 5Joy6 } if (GetKeyState("6Joy5") == 1) { Send - KeyWait 6Joy5 } if (GetKeyState("6Joy6") == 1) { Send = KeyWait 6Joy6 } if (GetKeyState("7Joy5") == 1) { Send - KeyWait 7Joy5 } if (GetKeyState("7Joy6") == 1) { Send = KeyWait 7Joy6 } if (GetKeyState("8Joy5") == 1) { Send - KeyWait 8Joy5 } if (GetKeyState("8Joy6") == 1) { Send = KeyWait 8Joy6 } } return Quote Link to comment Share on other sites More sharing options...
jayjay Posted December 5, 2020 Share Posted December 5, 2020 #Persistent #SingleInstance Force #WinActivateForce Gui, +AlwaysOnTop Gui, -Caption ;removes caption and border Gui, color, Black ; sets window color Gui, Add, Picture, W%A_ScreenWidth% H%A_ScreenHeight%, Gui, Show, , Blocker SetTitleMatchMode, 2 WinWait, Cdisplayex WinSet, Transparent, 0, ahk_exe CDisplayEx.exe WinWait, RetroArch VICE WinActivate, RetroArch VICE Sleep, 200 Gui, -AlwaysOnTop Gui, Hide Hotkey, ~NumpadSub & NumpadEnter, Function1 SetTimer, MyFunction, 1000 Loop { if WinActive("ahk_exe Cdisplayex.exe") { Zoom() } } ProcessExist(Name){ Process,Exist,%Name% return Errorlevel } Return Function1: run, nomousy.exe /hide Gui, Show, , Blocker SetTitleMatchMode, 2 WinSet, AlwaysOnTop, On, ahk_exe CDisplayEx.exe WinActivate, Cdisplayex WinSet, Transparent, 0, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 20, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 40, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 60, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 80, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 100, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 120, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 140, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 160, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 180, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 200, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 220, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 240, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, Off, ahk_exe CDisplayEx.exe Gui, Hide Hotkey, ~NumpadSub & NumpadEnter, Function2 Gui, Show, NA, Blocker WinSet, AlwaysOnTop, Off, ahk_exe CDisplayEx.exe Return Function2: SetTitleMatchMode, 2 WinSet, Transparent, 240, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 220, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 200, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 180, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 160, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 140, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 120, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 100, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 80, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 60, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 40, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 20, ahk_exe CDisplayEx.exe Sleep, 10 WinSet, Transparent, 0, ahk_exe CDisplayEx.exe Gui +AlwaysOnTop Sleep, 250 WinActivate, RetroArch VICE Sleep, 250 WinSet, AlwaysOnTop, On, ahk_exe CDisplayEx.exe Gui -AlwaysOnTop Gui, Hide run, nomousy.exe Hotkey, ~NumpadSub & NumpadEnter, Function1 Return MyFunction: IF ProcessExist("Retroarch.exe") { IF ProcessExist("CDisplayEX.exe") {} Else { Gui, Hide run, nomousy.exe Sleep, 500 Process, Close, nomousy.exe ExitApp } } Else { Winclose, Cdisplayex Gui, Hide run, nomousy.exe Sleep, 500 Process, Close, nomousy.exe ExitApp } } return Zoom() { if (GetKeyState("1Joy5") == 1) { Send - KeyWait 1Joy5 } if (GetKeyState("1Joy6") == 1) { Send = KeyWait 1Joy6 } if (GetKeyState("2Joy5") == 1) { Send - KeyWait 2Joy5 } if (GetKeyState("2Joy6") == 1) { Send = KeyWait 2Joy6 } if (GetKeyState("3Joy5") == 1) { Send - KeyWait 3Joy5 } if (GetKeyState("3Joy6") == 1) { Send = KeyWait 3Joy6 } if (GetKeyState("4Joy5") == 1) { Send - KeyWait 4Joy5 } if (GetKeyState("4Joy6") == 1) { Send = KeyWait 4Joy6 } if (GetKeyState("5Joy5") == 1) { Send - KeyWait 5Joy5 } if (GetKeyState("5Joy6") == 1) { Send = KeyWait 5Joy6 } if (GetKeyState("6Joy5") == 1) { Send - KeyWait 6Joy5 } if (GetKeyState("6Joy6") == 1) { Send = KeyWait 6Joy6 } if (GetKeyState("7Joy5") == 1) { Send - KeyWait 7Joy5 } if (GetKeyState("7Joy6") == 1) { Send = KeyWait 7Joy6 } if (GetKeyState("8Joy5") == 1) { Send - KeyWait 8Joy5 } if (GetKeyState("8Joy6") == 1) { Send = KeyWait 8Joy6 } } return Quote Link to comment Share on other sites More sharing options...
Zombeaver Posted December 5, 2020 Share Posted December 5, 2020 Said there was an unexpected { at line 129. This one (in red): MyFunction: IF ProcessExist("Retroarch.exe") { IF ProcessExist("CDisplayEX.exe") {} Else { Gui, Hide run, nomousy.exe Sleep, 500 Process, Close, nomousy.exe ExitApp } } Else { Winclose, Cdisplayex Gui, Hide run, nomousy.exe Sleep, 500 Process, Close, nomousy.exe ExitApp } } return I tried taking it out but then it said that the Else had no matching If statement. Quote Link to comment Share on other sites More sharing options...
jayjay Posted December 5, 2020 Share Posted December 5, 2020 Hopefully: MyFunction: iF ProcessExist("Retroarch.exe") { iF ProcessExist("CDisplayEX.exe") { } else { Gui, Hide run, nomousy.exe Sleep, 500 Process, Close, nomousy.exe ExitApp } } else { Winclose, Cdisplayex Gui, Hide run, nomousy.exe Sleep, 500 Process, Close, nomousy.exe ExitApp } return Quote Link to comment Share on other sites More sharing options...
Zombeaver Posted December 5, 2020 Share Posted December 5, 2020 Hmm... progress! Not quite though. No errors and Joy5 is working (which corresponds to - which tells CDisplayEx to zoom out). Joy6 (= / zoom in) isn't working though. Quote Link to comment Share on other sites More sharing options...
Zombeaver Posted December 5, 2020 Share Posted December 5, 2020 Replaced Send - and Send = with Send {-} and Send {=} and it's working! Thanks y'all! 2 Quote Link to comment Share on other sites More sharing options...
Zombeaver Posted December 5, 2020 Share Posted December 5, 2020 Is there a way to make holding it down continually hold down the send? It's sending it once per press (and no more). I tried changing them to Send {- Down} and Send {= Down} but that didn't work. Quote Link to comment Share on other sites More sharing options...
jayjay Posted December 5, 2020 Share Posted December 5, 2020 Remove the "KeyWait" lines. 1 Quote Link to comment Share on other sites More sharing options...
jayjay Posted December 5, 2020 Share Posted December 5, 2020 If it zooms in and out to fast, put a sleep, 100 or something in the function. 1 Quote Link to comment Share on other sites More sharing options...
Zombeaver Posted December 5, 2020 Share Posted December 5, 2020 Was way too fast without any delay but it's perfect with sleep, 100. Thanks again! You guys will both get a shout out in the next release for C64 Dreams 3 Quote Link to comment Share on other sites More sharing options...
Fablog Posted January 6, 2021 Share Posted January 6, 2021 (edited) On 6/28/2020 at 7:54 PM, Fablog said: Hi Guys, I know nothing about AHK script and I need your help to close every games I use with "Game Loader All RH.exe". Below is my script and obviously it doesn't work. Could you help me with that please? I use 2 Xb360 joystick. ~1joy7 & 3joy7:: Duration=0 Loop { Duration ++ If !GetKeyState("1joy7") || !GetKeyState("3joy7") Break If Duration > 2 { Send, {Esc} break } Sleep, 1000 } return On 7/5/2020 at 3:32 AM, Kiinkyfoxx said: If you change If !GetKeyState("1joy7") || !GetKeyState("3joy7") to If !GetKeyState("1joy7", "P") || !GetKeyState("3joy7", "P") that should work for you holding button 7 on both pads at same time for more than 2 seconds. Thanks @Kiinkyfoxx, it works but only if I run Launchbox in admin mode but it won't work in BB because games won't start in admin mode . Anyone know why is that so? Edited January 6, 2021 by Fablog Quote Link to comment Share on other sites More sharing options...
Kiinkyfoxx Posted January 6, 2021 Share Posted January 6, 2021 Hi @Fablog I don't know why it would only work as admin, unless Game Loader All RH.exe runs as admin and therefore needs the internal version of AHK from LaunchBox to be an admin, which means having to open LaunchBox as admin? But as a work around try the following (I cannot remember but I think you were putting this in the Running AHK tab) and this should make it work with LaunchBox or BigBox opened normally and not as an Admin. Untested as I don't use Game Loader All RH.exe but the concept works on other programmes/emulators/games that open as admin and need the internal AHK programme elevated to admin level. Anyone with some real knowledge and understanding is welcome to come up with a better idea. Cheers full_command_line := DllCall("GetCommandLine", "str") if not (A_IsAdmin or RegExMatch(full_command_line, " /restart(?!\S)")) { try { if A_IsCompiled Run *RunAs "%A_ScriptFullPath%" /restart else Run *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%" } ExitApp } ~1joy7 & 3joy7:: Duration=0 Loop { Duration ++ If !GetKeyState("1joy7", "P") || !GetKeyState("3joy7", "P") Break If Duration > 2 { Send, {Esc} break } Sleep, 1000 } return Quote Link to comment Share on other sites More sharing options...
Fablog Posted January 6, 2021 Share Posted January 6, 2021 Thanks @Kiinkyfoxx, I'll try that later. I precise that the AHK works with Teknoparrot. I couldn't test with All game RH because it's not configured like an emulator, so I can't use an AHK inside Launch box. Quote Link to comment Share on other sites More sharing options...
LegzRwheelz Posted January 8, 2021 Share Posted January 8, 2021 (edited) Hey all, I'm back with an issue that most likely has a simple solution as most of my ahk issues seem to entail. I hope I am not being difficult and that this fix is simple enough. I am attempting to create a launcher for launching a trainer alongside GR (Ghostrunner) so my son (who's 6) can play this hard as nails game with ease and when GR's process closes, the trainer closes along with it. I need to prevent the trainer from launching multiple times as well as GR. I have the part figured out for the game already, as you can see. I tend to have difficulties laying things out simply and/or clearly when I am trying to convey what I intend to or need to accomplish, so...Just to clarify on what I am needing to accomplish: 1. Upon launching the script, The script checks to see if trainer.exe is already running (to avoid multiple instances of it running), if not then launch it (minimized preferably). If it is running, then close and reopen it (to ensure the trainer's settings are cleared). Once it is running, the script waits 2 seconds before proceeding to launching GR. If the trainer can be launched minimized, then the order of launching isn't important. As of now, the trainer needs to launch first because it launches on top of GR. 2. GR is then loaded, if GR is already running and the launcher is ran again or clicked too many times, it uses winactivate to bring the game's window to the forefront (i prefer to use ("ahk_exe Ghostrunner-Win64-Shipping.exe") over the window title) as the window it looks for. 3. Next it waits for the ghostrunner window to close as it's cue to close the trainer 4. close the script when both Ghostrunner and the trainer is closed. (exitapp) I imagine that some of these steps are redundant. I am far from proficient in AHK though. Hopefully all of this makes sense. Here is what I've come up with so far.... if WinExist("ahk_exe Ghostrunner-Win64-Shipping.exe") { WinActivate } else Run "F:\LaunchBox\Games\PC Games\Ghostrunner\Trainer.exe", 2 Run "F:\LaunchBox\Games\PC Games\Ghostrunner\Ghostrunner.exe" Process, Wait, Ghostrunner-Win64-Shipping.exe, 10 ;max 10 sec. Process, WaitClose, Ghostrunner-Win64-Shipping.exe Process, Wait, Trainer.exe Process, WaitClose, Trainer.exe return As you can tell, it is not doing what I am intending for it to do. ? Thank you in advance. I feel like a needy child. lol Last, but most certainly not least...I would like to say thanks to all of you for all the help you selflessly provide to others. Be it here or IRL. God bless you all. Edited January 8, 2021 by CtinD Correction of grammatical errors, adding information and reducing overall redundancy of my post. Quote Link to comment Share on other sites More sharing options...
JoeViking245 Posted January 8, 2021 Share Posted January 8, 2021 "I think" this will work. Create a next Text file and then save (or rename) it as an AutoHotkey Script file. i.e. "F:\MyAHKs\GRwTrainer.ahk" Make sure the actual extension is getting changed to "ahk" from "txt"! The contents of the file will be something like this: #SingleInstance Force WinClose, ahk_exe Trainer.exe if WinExist("ahk_exe Ghostrunner-Win64-Shipping.exe") { WinActivate } else { Run, "F:\LaunchBox\Games\PC Games\Ghostrunner\Ghostrunner.exe" } Run, "F:\LaunchBox\Games\PC Games\Ghostrunner\Trainer.exe", , Min Sleep, 10000 Process, WaitClose, Ghostrunner-Win64-Shipping.exe WinClose, ahk_exe Trainer.exe Edit your GhostRunner game and set the Application Path to ThirdParty\AutoHotkey\AutoHotkey.exe ..and the Command Line Parameter to "F:\MyAHKs\GRwTrainer.ahk" With this, your launching the script instead of the game (which in turn will launch the game etc.). What the script does: Force the script to close if it's already running, and 'restart' it. Close "Trainer". (a simple 'catch' that doesn't hurt anything it it wasn't already running) Check if "Ghostrunner-Win64-Shipping.exe" is already running if it is { Bring its window to the top } otherwise { Run GhostRunner } Run Trainer minimized Wait 10 seconds for GR to [I assume this is what it does] spawn "Ghostrunner-Win64-Shipping.exe". It shouldn't take this long to 'spawn', but doesn't matter. He'll be 'playing' for at least 10 seconds anyway. Right? Hang out here until the game is exited. Once the game is no longer running, politely close Trainer. at this point, the script is done and will exit itself. No need to ExitApp. I think I caught from your description that Trainer and GR are independent of each other, in that one doesn't HAVE to be running PRIOR to the other. If that's not the case, this ain't gonna work as expected. If all goes well, you should be good to go. Not tested, but it "looks good on paper". Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.