EmulationStation
EmulationStation copied to clipboard
Use ShellExecute to run emulators on Win32
This is an updated version of the system call, not requiring a cmd prompt to run emulators.
It has better flexibility, because it behaves like a user double clicking on an app.
@jrassa During the Windows environment configuration, I got almost all dependencies (freetype, freeimage, curl and rapidsjon) installed using vspkg. Only libvlc was required to be manually downloaded.
Do you think it's worth document my building process using vspkg? While it requires VS Studio 2019 setup to install C++ core libraries, I followed your MSBuild commands from the CI config in your repo (i.e., the build/compile process is all command line).
Ok, just tested with a lot of different commands, and this is not properly handling arguments. I'll improve it (and close this PR for now).
Now I'm using PathGetArgs to properly parse arguments.
I tested this in a different Windows box: it requires a newest version of Microsoft Visual C++ Redistributable: the 2015 x86 version.
Hello, Your patch is good and I'm also wrote similar patch this on https://github.com/RetroPie/EmulationStation/pull/684 . (& add support for multibyte characters) My patch using CreateProcessW() is not need split program and arguments. Please refer.
@o-p-a Your PR is address several issues with the multibyte support! Nice!
For some reason, I missed it, sorry!
My solution relied on ShellExecuteEx because I want to keep the ability of run .lnk file like the system call.