Запуск процесса из службы
От: lesovick Россия  
Дата: 17.09.09 12:41
Оценка:
Много я видел топиков по этой теме здесь. Видел даже вопрос по конкретно моей проблеме, но ответа на него так и не нашёл.

Есть служба, работающая от SYSTEM, которой разрешено взаимодействовать с рабочим столом. Она запускает "notepad.exe" от имени текущего пользователя. "notepad.exe" появляется на рабочем столе, запускается, но криво: окно приложения не прорисовывается полностью, только верхняя полоска окна, без панели инструментов, без поля ввода. Вот код на С++:

STARTUPINFO startUpInfo = { sizeof(STARTUPINFO),NULL,"winsta0\\default",NULL,0,0,0,0,0,0,0,STARTF_USESHOWWINDOW,0,0,NULL,0,0,0};
startUpInfo.wShowWindow = SW_SHOW;
LogonUser(pUserName,(::strlen(pDomain)==0)?".":pDomain,pPassword,LOGON32_LOGON_SERVICE,LOGON32_PROVIDER_DEFAULT,&hToken);
CreateProcessAsUser(hToken,NULL,pCommandLine,NULL,NULL,TRUE,NORMAL_PRIORITY_CLASS,NULL,(strlen(pWorkingDir)==0)?NULL:pWorkingDir,&startUpInfo,&pProcInfo[nIndex]);

Если же запускать "notepad.exe" от SYSTEM, всё работает нормально. Как запустить "notepad.exe" от текущего пользователя, чтобы окно приложения не глючило? Вот ссылка на похожую тему. Там звучит мой вопрос, но ответа не дано: http://rsdn.ru/forum/winapi/478913.aspx
Автор: DMichael
Дата: 16.12.03
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.