Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];

Вниз

Запуск прог из сервиса   Найти похожие ветки 

 
Goryn   (2006-01-28 14:15) [0]

После переделки в сервис, моя панель для запуска программ
перестала работать-

причина проги пускает под другим sexrity :)
описание ненашел ,чтоб добавить права Explorer
чтоб подним запускалось

Кривая идея - открыть папку с прогой ,
найти иконку приложения и программно
кликнуть мышью и прога запускится под Explorerом


в сервисе запускаю проги так
Start := CreateProcess(nil,
Exe,            
nil,  <-sexrity            
nil,



 
kaZaNoVa ©   (2006-01-28 16:41) [1]

запускать или через CreateProcessWithLogonW (надо знать пароль пользователя) или через внедрение DLL  в любой процесс, УЖЕ запущенный от имени пользователя и запуск проиграммы уже из той DLL (не рекомендуется).


 
kaZaNoVa ©   (2006-01-28 16:53) [2]

Goryn   (28.01.06 14:15)
права Explorer
чтоб подним запускалось

Explorer может быть запущен от имени кого угодно ..

обычно же в нормальной системе он запускается от имени текущего залогинившегося пользователя ..

как вариант можно еще попробовать сервис запускать в интерактивном режиме, но нет уверенности что это будет работать так как надо.

если же нужно именно чтобы "под Explorer" запускалось - лучший выход - добавить автозагружаемую (через реестр) DLL  в него ..


 
Goryn   (2006-01-28 18:08) [3]

>через CreateProcessWithLogonW (надо знать пароль пользователя)

пардон,незнаю пароль,я сервис

>Explorer может быть запущен от имени кого угодно ..

в данном случае текущего пользателя,
тосесть как то надо ПОНИЗИТЬ ПРАВА запускаемого процесса

Start := CreateProcess(nil,
Exe,            
nil,  <-sexrity            

ситуация напоминает мощь NT - сильные права ,но ничего нельзя сделать ))))


 
kaZaNoVa ©   (2006-01-28 18:15) [4]

Goryn   (28.01.06 18:08) [3]
ПОНИЗИТЬ ПРАВА запускаемого процесса

понизить права?) а это вообще, возможно? скорее всего надо запускать под другой учётной записью, которая и имеет другие права ..


 
kaZaNoVa ©   (2006-01-28 18:19) [5]

Goryn   (28.01.06 18:08) [3]
галочку поставить в настройке службы. (так и называется "разрешить взаимодействие с рабочим столом)

- такое пробовали?)


 
kaZaNoVa ©   (2006-01-28 18:46) [6]

исчо можно попробовать:

1)WTSEnumerateSessionsA
2)перебор хэндлов сессий и подсовывание их в WTSQueryUserToken
3)полученные UserTokens используем в CreateProcessAsUser, которая запускает
энумератор в контексте требуемого юзверь-пространства.

Учти, WTSEnumerateSessions будет выдавать валидные идентификаторы для
сессий,отличных от Console только если на сервере установлены Terminal
Services.


 
Goryn   (2006-01-29 02:09) [7]

>галочку поставить в настройке службы.

такое непробывал,хотелось программно

>исчо можно попробовать:

ага буду разбираться , копать

спасибо


 
Набережных С. ©   (2006-01-29 07:38) [8]


> kaZaNoVa ©   (28.01.06 18:46) [6]

Перебирать сессии не надо, надо использовать WtsGetActiveConsoleSessionID. И если для этого ID WTSQueryUserToken вернет ошибку, то это значит, что интерактивного пользоавтеля нет.

> WTSEnumerateSessions будет выдавать валидные идентификаторы
> для
> сессий,отличных от Console только если на сервере установлены
> Terminal
> Services

А также, если задействован Fast User Switching

> Goryn   (28.01.06 14:15)  

Вероятно, потребуется отслеживать переключения пользователей. См. WTSRegisterSessionNotification. Также учти, вся эта кухня не будет работать в системах ниже WinXP.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.039 c
4-1138459145
maxim161
2006-01-28 17:39
2006.04.16
Отправка сообщений процессу


15-1143267479
kilonet
2006-03-25 09:17
2006.04.16
Как обмениваться большими файлами


1-1142366636
qb1k
2006-03-14 23:03
2006.04.16
RSA, криптоалгоритмы, keygen


2-1143966370
foks-06
2006-04-02 12:26
2006.04.16
Получение координат?


2-1143573708
mr1Andersen
2006-03-28 23:21
2006.04.16
Простой вопрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский