C++ 从服务中打开UWP应用程序

C++ 从服务中打开UWP应用程序,c++,visual-studio-2010,uwp,createprocessasuser,C++,Visual Studio 2010,Uwp,Createprocessasuser,我正在尝试从我创建的服务中使用CreateProcessAsUser启动应用程序和进程。我打开记事本、IE等应用程序的尝试是成功的。但我在尝试打开Groove Music时遇到了一个障碍,Groove Music是一个UWP应用程序 当我试图从命令提示符打开Groove Music时,文件夹被隐藏,访问被拒绝 STARTUPINFO si; PROCESS_INFORMATION pi; LPTSTR szCmdline = _tcsdup(TEXT("C:\Program Files\Wind

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

当我试图从命令提示符打开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应用程序?或者我缺少任何明显的方法吗?

你可以用这种方法

它需要从用户进程调用,因此您必须执行两步方法:从您的服务调用CreateProcessAsUser来创建一个helper进程,然后调用ActivateApplication