Как запустить процесс от имени текущего пользователя?
От: dims12 http://www.relativity.ru
Дата: 10.03.10 07:57
Оценка:
Как инсталлер (который работает от имени Системы) может запустить процесс от имени пользователя (который запустил инсталлер и сидит перед экраном)?
Re: Как запустить процесс от имени текущего пользователя?
От: SuhanovSergey  
Дата: 10.03.10 08:04
Оценка:
Здравствуйте, dims12, Вы писали:

D>Как инсталлер (который работает от имени Системы) может запустить процесс от имени пользователя (который запустил инсталлер и сидит перед экраном)?


Есть такой Terminal Services API, который позволяет из-под системного аккаунта оперировать с сессиями на данной машине. См http://msdn.microsoft.com/en-us/library/aa383459(VS.85).aspx
Re[2]: Как запустить процесс от имени текущего пользователя?
От: dims12 http://www.relativity.ru
Дата: 10.03.10 08:57
Оценка:
Здравствуйте, SuhanovSergey, Вы писали:

SS>Есть такой Terminal Services API, который позволяет из-под системного аккаунта оперировать с сессиями на данной машине. См http://msdn.microsoft.com/en-us/library/aa383459(VS.85).aspx


А это не слишком тяжеловесно? Как вообще инсталляторы залазят в реестр текущего пользователя, разве это не штатная задача?
Re[3]: Как запустить процесс от имени текущего пользователя?
От: Uzzy Россия  
Дата: 10.03.10 09:06
Оценка:
Здравствуйте, dims12, Вы писали:

D>Здравствуйте, SuhanovSergey, Вы писали:


SS>>Есть такой Terminal Services API, который позволяет из-под системного аккаунта оперировать с сессиями на данной машине. См http://msdn.microsoft.com/en-us/library/aa383459(VS.85).aspx


D>А это не слишком тяжеловесно? Как вообще инсталляторы залазят в реестр текущего пользователя, разве это не штатная задача?


1. попробуйте использовать WMI (см. Win32_Process) но для локальной машиины может не подойти.
2. есть интероп функции advapi.dll тут описывалось не раз
3. Task Sheduler
Re[3]: Как запустить процесс от имени текущего пользователя?
От: SuhanovSergey  
Дата: 10.03.10 09:33
Оценка:
Здравствуйте, dims12, Вы писали:

D>Здравствуйте, SuhanovSergey, Вы писали:


SS>>Есть такой Terminal Services API, который позволяет из-под системного аккаунта оперировать с сессиями на данной машине. См http://msdn.microsoft.com/en-us/library/aa383459(VS.85).aspx


D>А это не слишком тяжеловесно? Как вообще инсталляторы залазят в реестр текущего пользователя, разве это не штатная задача?


Вы опишите, какую задачу именно задачу нужно решить?
Насколько я знаю инсталлятор имеет один процесс msiexec, выполняющийся от пользователя, который запустил инсталляцию, и другой msiexec, выполняющийся всегда как сервис.
Также учтите, что на хост может быть залогинено одновременно несколько пользователей. Что вы называете текущим пользователем?
Re: Как запустить процесс от имени текущего пользователя?
От: Jolly Roger  
Дата: 10.03.10 09:36
Оценка:
Здравствуйте, dims12, Вы писали:

здесь
Автор: Jolly Roger
Дата: 03.03.10
"Нормальные герои всегда идут в обход!"
Re[4]: Как запустить процесс от имени текущего пользователя?
От: dims12 http://www.relativity.ru
Дата: 10.03.10 15:40
Оценка:
Здравствуйте, SuhanovSergey, Вы писали:

SS>Вы опишите, какую задачу именно задачу нужно решить?


Я хочу сделать инсталлятор для экселевского Add-in а. Там три не очень ясных мне этапа. Первые два этапа отрабатывают нормально, а третий -- это регистрация аддина в самом экселе. Я не нашёл ничего лучшего, чем запускать эксель и отдавать ему команды через интероп.

SS>Насколько я знаю инсталлятор имеет один процесс msiexec, выполняющийся от пользователя, который запустил инсталляцию, и другой msiexec, выполняющийся всегда как сервис.


Я добавил в проект Installer Class и некоторые операции выполняю в его обработчиках. Не могу понять, как мне попасть в другой процесс?

SS>Также учтите, что на хост может быть залогинено одновременно несколько пользователей. Что вы называете текущим пользователем?


Который запустил инсталлятор. Собственно, особый универсализм тут не нужен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.