gpt4 book ai didi

c++ - 从服务打开 UWP 应用程序

转载 作者:行者123 更新时间:2023-11-30 03:19:06 25 4
gpt4 key购买 nike

我正在尝试从我创建的服务中使用 CreateProcessAsUser 启动应用程序和进程。我尝试打开记事本、IE等应用程序都成功了。但是我在尝试打开作为 UWP 应用程序的 Groove Music 时遇到了障碍。

当我尝试从命令提示符打开 Groove Music 时,该文件夹被隐藏并且访问被拒绝。

STARTUPINFO si;
PROCESS_INFORMATION pi;
LPTSTR szCmdline = _tcsdup(TEXT("C:\Program Files\WindowsApps\Microsoft.ZuneMusic_10.18102.10531.0_x64__8wekyb3d8bbwe\Music.UI.exe"));
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
HANDLE t1,t2;
OpenProcessToken(gethandle(_T("explorer.exe")), TOKEN_DUPLICATE | TOKEN_QUERY | TOKEN_ASSIGN_PRIMARY | TOKEN_ADJUST_PRIVILEGES , &t2);
DuplicateTokenEx(t2, 0, NULL, SecurityImpersonation,TokenPrimary, &t1);
CreateProcessAsUser(t1,NULL,szCmdline,NULL,NULL,TRUE,0,NULL,NULL,&si,&pi))

有什么方法可以从我编写的程序中启动 UWP 应用程序吗?还是我遗漏了任何明显的方法?

最佳答案

您可以使用 IApplicationActivationManager::ActivateApplication 来做到这一点方法。

它需要从用户进程调用,因此您必须采用两步方法:从您的服务调用 CreateProcessAsUser 以创建一个辅助进程,然后该进程将调用 ActivateApplication。

关于c++ - 从服务打开 UWP 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54087350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com