У меня есть команда, которую мне нужно запустить cmd.exe, когда что-то происходит в моей программе. Допустим, команда «calc.exe». Когда я использую ShellExecute:
HWND win = GetActiveWindow();
ShellExecute(win,L"open",L"calc.exe",L"",L"", SW_SHOWNORMAL );
Процесс calc.exe запускается в сеансе 0, поэтому я не вижу его. Есть ли способ настроить его запуск в окне активных пользователей? Я не хочу использовать CreateProcess, так как у меня были проблемы с привилегиями
Спасибо
Нет. ShellExecute
не может запустить программу в другом сеансе. Вам нужно будет использовать CreateProcessAsUser
, Здесь есть множество вопросов, которые обсуждают, как это сделать.
Других решений пока нет …