Я пытаюсь запустить приложения и процессы, используя CreateProcessAsUser
из службы, которую я создал. Мои попытки открыть такие приложения, как блокнот, IE и т. Д. Были успешными. Но я столкнулся с препятствиями при попытке открыть 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 из программы, которую я написал? Или я упускаю какие-либо очевидные методы?