Allow UWP LaunchArgs

pull/130/head
Peter Repukat 3 years ago
parent 1a47ef8c35
commit 9110d00a72

@ -38,7 +38,7 @@ void AppLauncher::launchApp(const std::wstring& path, const std::wstring& args)
std::wsmatch m; std::wsmatch m;
if (!std::regex_search(path, m, std::wregex(L"^.{1,3}:"))) { if (!std::regex_search(path, m, std::wregex(L"^.{1,3}:"))) {
spdlog::info("LaunchApp is UWP, launching..."); spdlog::info("LaunchApp is UWP, launching...");
launchUWPApp(path.data()); launchUWPApp(path.data(), args);
} }
else { else {
spdlog::info("LaunchApp is Win32, launching..."); spdlog::info("LaunchApp is Win32, launching...");
@ -153,7 +153,7 @@ void AppLauncher::launchWin32App(const std::wstring& path, const std::wstring& a
} }
} }
void AppLauncher::launchUWPApp(const LPCWSTR package_full_name) void AppLauncher::launchUWPApp(const LPCWSTR package_full_name, const std::wstring& args)
{ {
HRESULT result = CoInitialize(nullptr); HRESULT result = CoInitialize(nullptr);
if (SUCCEEDED(result)) { if (SUCCEEDED(result)) {
@ -175,7 +175,7 @@ void AppLauncher::launchUWPApp(const LPCWSTR package_full_name)
} }
// Launch the app // Launch the app
result = sp_app_activation_manager->ActivateApplication(package_full_name, nullptr, AO_NONE, &uwp_pid_); result = sp_app_activation_manager->ActivateApplication(package_full_name, args.empty() ? nullptr : args.data(), AO_NONE, &uwp_pid_);
if (!SUCCEEDED(result)) { if (!SUCCEEDED(result)) {
spdlog::error("ActivateApplication failed: Code {}", result); spdlog::error("ActivateApplication failed: Code {}", result);
} else { } else {

@ -45,7 +45,7 @@ private:
static inline const std::string CREATE_PROC_ORIG_BYTES = "\x4C\x8B\xDC\x48\x83"; static inline const std::string CREATE_PROC_ORIG_BYTES = "\x4C\x8B\xDC\x48\x83";
static void UnPatchValveHooks(); static void UnPatchValveHooks();
void launchWin32App(const std::wstring& path, const std::wstring& args = L""); void launchWin32App(const std::wstring& path, const std::wstring& args = L"");
void launchUWPApp(LPCWSTR package_full_name); void launchUWPApp(LPCWSTR package_full_name, const std::wstring& args = L"");
STARTUPINFO info{sizeof(info)}; STARTUPINFO info{sizeof(info)};
PROCESS_INFORMATION process_info{}; PROCESS_INFORMATION process_info{};
DWORD uwp_pid_ = 0; DWORD uwp_pid_ = 0;

Loading…
Cancel
Save