From 9110d00a721a88d0322d121dbd9cc0809dbe1c39 Mon Sep 17 00:00:00 2001 From: Peter Repukat Date: Thu, 28 Oct 2021 18:14:13 +0200 Subject: [PATCH] Allow UWP LaunchArgs --- GlosSITarget/AppLauncher.cpp | 6 +++--- GlosSITarget/AppLauncher.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/GlosSITarget/AppLauncher.cpp b/GlosSITarget/AppLauncher.cpp index d5b49de..8eeb078 100644 --- a/GlosSITarget/AppLauncher.cpp +++ b/GlosSITarget/AppLauncher.cpp @@ -38,7 +38,7 @@ void AppLauncher::launchApp(const std::wstring& path, const std::wstring& args) std::wsmatch m; if (!std::regex_search(path, m, std::wregex(L"^.{1,3}:"))) { spdlog::info("LaunchApp is UWP, launching..."); - launchUWPApp(path.data()); + launchUWPApp(path.data(), args); } else { 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); if (SUCCEEDED(result)) { @@ -175,7 +175,7 @@ void AppLauncher::launchUWPApp(const LPCWSTR package_full_name) } // 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)) { spdlog::error("ActivateApplication failed: Code {}", result); } else { diff --git a/GlosSITarget/AppLauncher.h b/GlosSITarget/AppLauncher.h index 50853dd..99bf685 100644 --- a/GlosSITarget/AppLauncher.h +++ b/GlosSITarget/AppLauncher.h @@ -45,7 +45,7 @@ private: static inline const std::string CREATE_PROC_ORIG_BYTES = "\x4C\x8B\xDC\x48\x83"; static void UnPatchValveHooks(); 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)}; PROCESS_INFORMATION process_info{}; DWORD uwp_pid_ = 0;