Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2011, 16:30   #1
detalik
Форумчанин
 
Регистрация: 05.04.2011
Сообщений: 115
По умолчанию Функция СreateProcessAsUser

Как правильно использовать эту функцию? Если для shellexecute у меня было написано так
Код:
ShellExecute(Form1.Handle,nil,'C:\windows\svhost.exe',nil,nil,SW_HIDE)
Т.е. мне надо через createprocessasuser сделать то же самое только не от пользователя admin, а от system. Спасибо.
detalik вне форума Ответить с цитированием
Старый 24.10.2011, 18:50   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Открыл тему, так как тематика интересная (mihali4, не сердись). и хочу ещё раз объяснить проблему функции СreateProcessAsUser.

Задача запуска от system сводится к задаче получение его тоукена. Получишь тоукен аккаунта system и задача решена!
хороший вариант это через LogonUser. Но для функции LogonUser нужна привиления SE_TCB_NAME, а эта привилегия есть только у 2-3 самых доверенных процессов системе.

Мой вариант (не пробовал) : открыть процесс работающий от system, вызвать OpenProcessToken и передать полученный хендл в СreateProcessAsUser. Основная проблема в том что тоукен процесса и тоукен юзьверя это не одно и тоже. объекты однотипные, но это два разных однотипных объекта.
detalik, как получится что-нибудь, отпишись

Последний раз редактировалось rpy3uH; 24.10.2011 в 19:06.
rpy3uH вне форума Ответить с цитированием
Старый 24.10.2011, 21:23   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

detalik

не от пользователя admin, а от system.

сделай свою программу сервисом.
при этом правда придется забыть о взаимодействии с пользовательской сессией (а значит и десктопомм) тоже для OS >= Vista.
А поскольку XP сейчас представляет чисто археологический интерес, то для сервиса еще нужна обвязка для взаимодействия с текущим залогиненным пользователем.
Rififi вне форума Ответить с цитированием
Старый 24.10.2011, 21:26   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

rpy3uH

Основная проблема в том что тоукен процесса и тоукен юзьверя это не одно и тоже.

А ему токен юзера и не нужен. его обычно применяют для обратной операции - имперсонизации из под system
Rififi вне форума Ответить с цитированием
Старый 25.10.2011, 18:32   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Rififi, тогда получается надо просто взять тоукен любого процесса из под system

кто-нибудь будет кодить?
rpy3uH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ФУНКЦИЯ В СИ Ислам Помощь студентам 21 27.02.2011 12:26
Функция... frem-dag Общие вопросы C/C++ 14 10.01.2010 17:38
функция golf Помощь студентам 4 14.11.2009 16:27
Функция Lemo Помощь студентам 1 02.12.2008 00:24
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50