Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запуск процесса из службы

36K
17 сентября 2009 года
lesovick
22 / / 09.04.2009
Есть служба, работающая от 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" от текущего пользователя, чтобы окно приложения не глючило?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог