silver30001 Posted March 7 Share Posted March 7 (edited) EDIT: Seemingly solved. Solution was to specify pathway to run pnputil.exe to it's install location in "C:\Windows\WinSxS\amd64_microsoft-windows-pnputil_31bf3856ad364e35_10.0.22621.2506_none_dd3e282938270e6f\pnputil.exe". Depending on update, the random string of letters might change, I found it by opening the WinSxS file and searching for "pnputil" to find the correct folder, and then copying the EXE within's path. TLDR; I have a .bat file that must be ran as administrator. How do I do so from the running script of an emulator in Launchbox? Hello, I'm hoping somebody can help me out with an issue I'm having getting my cab working properly. The cabinet is running a standard windows computer that is configured to launch into Bigbox as shell. I have 4 zero-delay arcade controllers connected as the primary controllers. To compensate for the controllers activating in random order, I tick "enable all controllers" in Bigbox so all 4 work to control the UI. I additionally run the software vJoy and Lichtknarre for handling Wii Motes connected via Bluetooth as light guns for light gun games. vJoy creates virtual joysticks as HID devices, while Lichtknarre runs as an elevated .exe and translates the wii motes to vJoy. I've run into compatibility issues with Lichtknarre and some emulators, so I want that opened and closed alongside light gun games specifically. I'm assuming due to it being an elevated .exe, I couldn't get it to launch from the running AHK, but I found I could run it with the game as an additional application, and I could run a .bat from the running AHK and it would close Lichtknarre correctly. I've got this working completely fine. When I close a light gun game, vJoy usually winds up stuck pointing in whatever direction it last detected, and makes the bigbox interface impossible to navigate. I've created .bat files that enable and disable the HID device using pnputil, which work fine if I run them myself elevated as administrator. The enable .bat works fine as an additional app to the emulator, but I can't get the disable .bat to run from the running AHK script. I've tried 'run example.bat', 'run *runas example.bat', I've tried creating a shortcut for the bat that is ticked to always run as admin and having the running script launch that (run example.bat - shortcut.lnk OR run *runas example.bat - shortcut.lnk), but I've been unable to get the script to properly run the .bat such that it disables the vJoy HID device. I'm assuming I'm doing something wrong and it's not running the bat as administrator, or failing to launch at all when I use the shortcut that is set to always run as administrator. How do I properly elevate the running script so that it launches the bat files as administrator? Edited March 12 by silver30001 Quote Link to comment Share on other sites More sharing options...
Kiinkyfoxx Posted March 8 Share Posted March 8 HI @silver30001 I do something similar for Wiimotes, but with Touchmote, Demulshooter and MameHooker which can require elevated launching, plus using pnputil to enable and disable devices - but I use ahks rather than bat files as I find them easier to work with. I am happy to try to help and give advice and work through it with you, but it might take a few goes. Do you have AHK downloaded and installed or do you just use the one with LaunchBox? I'm guessing you do something like this 1) Enable devices 2) Launch Lichtknarre 3) Game launches and you play for a bit 4) Press Exit button/Game closes 5) Disable devices 6) Close Lichtknarre If I have the correct idea could you upload your bat files that work standalone and I will have a look and see if I can help. Cheers Quote Link to comment Share on other sites More sharing options...
silver30001 Posted March 11 Author Share Posted March 11 (edited) Hello @Kiinkyfoxx For context, I'm currently configuring light gun games for the TeknoParrot platform. I've only been using the AHK that comes with LaunchBox, but if I can resolve this by installing it in full I'm completely open to doing so. I've created a second Emulator in Launchbox's list that is identical to my normal one, but with the following running script added: Spoiler $1Joy12:: { Run, C:\...\KillLichtknarre.bat } My KillLichtknarre.bat has the following: Spoiler taskkill /f /im Lichtknarre.exe pnputil /disable-device "vJoy Driver ID" The above .bat works fine if I right click the file and run as administrator, but not if Launchbox attempts to run it. I've tried making a shortcut for the .bat that's ticked to always run as administrator, but that also doesn't seem to work. Within a Game's metadata is the Additional Apps tab, and I have Lichtknarre.exe and the following .bat ticked to start before main application. Spoiler pnputil /enable-device "vJoy Driver ID" The Additional Apps seem to launch both Lichktnarre and enable vJoy just fine, it's mainly closing the app I'm having issues with. Edited March 11 by silver30001 Quote Link to comment Share on other sites More sharing options...
Kiinkyfoxx Posted March 11 Share Posted March 11 (edited) 3 hours ago, silver30001 said: $1Joy12:: { Run, C:\...\KillLichtknarre.bat } Have you removed stuff from that pathway, or is that really the full pathway? You could try replacing the above with Spoiler $1Joy12:: { Run *Runas "taskkill" /IM "Lichtknarre.exe" /F,,hide ;This runs taskkill as admin and hidden WinWaitClose, ahk_exe Lichtknarre.exe Sleep, 500 Run *Runas "pnputil" /disable-device "vJoy Driver ID",C:\WINDOWS\system32,hide ;this run puputil as admin and hidden WinWaitClose, ahk_exe PnPUtil.exe SoundBeep, 2000, 2000 ; This is just to make a beep at the end to check if running you can remove the whole line if works } ExitApp Edited March 11 by Kiinkyfoxx Quote Link to comment Share on other sites More sharing options...
silver30001 Posted March 11 Author Share Posted March 11 Modified pathway to obscure identifying information. Didn't realize it was in there until I reviewed the posting and rush removed it lol The taskill for Lichtknarre appears to be working, but I'm getting an error on the pnputil line for disabling the driver: Spoiler Error: Failed attempt to launch program or document: Action: <pnputil> Verb: <Runas> Params: </disable-device "ROOT\HIDCLASS\0001> Specifically: The system cannot find the file specified Line# 002: Return 003: { 004: Run, *Runas "taskkill" /IM "Lichtknarre.exe /F,,hide 006: WinWaitClose,ahk_exe Lichtknarre.exe 008: Sleep,500 --> 010: Run,*Runas "pnputil" /disable-device "ROOT\HIDCLASS\0001",C:\\WINDOWS\system32,hide 012: WinWaitClose,ahk_exe PnPUtil.exe 014: SoundBeep,2000,2000 015: } 017: ExitApp 018: Exit 019: Exit 019: Exit The current thread will Exit Not exactly sure what's happening here, as the same pnputil command in a .bat file works fine when ran as admin. Quote Link to comment Share on other sites More sharing options...
Kiinkyfoxx Posted March 11 Share Posted March 11 43 minutes ago, silver30001 said: ,C:\\WINDOWS\system32,hide Can you check the pathway for that part please I made mine error out to see what the error message looked like but only got C:\WINDOWS and not C:\\WINDOWS as per your one. Quote Link to comment Share on other sites More sharing options...
silver30001 Posted March 11 Author Share Posted March 11 Sorry, that was a typo on my part. I couldn't copy the error text so I manually typed up the error. The exact error window below (using an image): Spoiler Quote Link to comment Share on other sites More sharing options...
Kiinkyfoxx Posted March 11 Share Posted March 11 I know it should be in that folder. Is that the pathway you used when doing it via command line. Is it just worth checking it is in that folder and not somewhere else? Quote Link to comment Share on other sites More sharing options...
silver30001 Posted March 12 Author Share Posted March 12 Alright, the only thing I've learned from this is that Windows utilities are weird. In the batch file, I wasn't specifying a pathway, when you run the batch as administrator, it gets access to a bunch of utilities that you don't get otherwise, even if you elevate the command within the file. This is why it had to be opened as administrator, I think. There is 100% a "pnputil.exe" located in C:\Windows\System32. This is not the actual application apparently, according to a random broadcom forum thread I found, it's a virtual link to the actual install location, and scripts have issues working properly when attempting to use it. I set the pathway to "C:\Windows\WinSxS\amd64_microsoft-windows-pnputil_31bf3856ad364e35_10.0.22621.2506_none_dd3e282938270e6f\pnputil.exe" in the AHK Running script, and it is now working as expected. Thanks for your help @Kiinkyfoxx! Quote Link to comment Share on other sites More sharing options...
skizzosjt Posted March 12 Share Posted March 12 oh in that case you could call to the command prompt in AHK with comspec variable (path to the command prompt) this way you can use the command prompt way of calling to Windows utilities. this way Windows still knows it's correct location despite just using "pnputil" to call to it. for ex, little test output for proof of concept Run, %comspec% /c pnputil > textout.txt or for elevated Admin privileges, note if you try this one as it will output to \Windows\system32 folder (I thought, why isn't the file showing up on the desktop for a sec when I tested it lol) Run, *RunAs %comspec% /c pnputil > textout.txt I know it is resolved, just wanted to point out you can make use of the command prompt through AHK to make that a little more straight forward, especially if you're more familiar with batch files 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.