Здравствуйте, dims12, Вы писали:
D>Как инсталлер (который работает от имени Системы) может запустить процесс от имени пользователя (который запустил инсталлер и сидит перед экраном)?
Здравствуйте, 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]: Как запустить процесс от имени текущего пользователя?
Здравствуйте, dims12, Вы писали:
D>Здравствуйте, SuhanovSergey, Вы писали:
SS>>Есть такой Terminal Services API, который позволяет из-под системного аккаунта оперировать с сессиями на данной машине. См http://msdn.microsoft.com/en-us/library/aa383459(VS.85).aspx
D>А это не слишком тяжеловесно? Как вообще инсталляторы залазят в реестр текущего пользователя, разве это не штатная задача?
Вы опишите, какую задачу именно задачу нужно решить?
Насколько я знаю инсталлятор имеет один процесс msiexec, выполняющийся от пользователя, который запустил инсталляцию, и другой msiexec, выполняющийся всегда как сервис.
Также учтите, что на хост может быть залогинено одновременно несколько пользователей. Что вы называете текущим пользователем?
Re: Как запустить процесс от имени текущего пользователя?
Здравствуйте, SuhanovSergey, Вы писали:
SS>Вы опишите, какую задачу именно задачу нужно решить?
Я хочу сделать инсталлятор для экселевского Add-in а. Там три не очень ясных мне этапа. Первые два этапа отрабатывают нормально, а третий -- это регистрация аддина в самом экселе. Я не нашёл ничего лучшего, чем запускать эксель и отдавать ему команды через интероп.
SS>Насколько я знаю инсталлятор имеет один процесс msiexec, выполняющийся от пользователя, который запустил инсталляцию, и другой msiexec, выполняющийся всегда как сервис.
Я добавил в проект Installer Class и некоторые операции выполняю в его обработчиках. Не могу понять, как мне попасть в другой процесс?
SS>Также учтите, что на хост может быть залогинено одновременно несколько пользователей. Что вы называете текущим пользователем?
Который запустил инсталлятор. Собственно, особый универсализм тут не нужен.