Как начать процесс на сессии 1 из службы Windows 7C#

Место общения программистов C#
Ответить
Anonymous
 Как начать процесс на сессии 1 из службы Windows 7

Сообщение Anonymous »

У меня есть сервис, работающий в Windows 7. В Windows 7 Все службы запускаются в сессии 0. Из этой службы я хочу создать интерактивный сеанс пользователя (в сеансе, отличном от сеанса 0) и запустить приложение в этом сеансе. Моя проблема заключается в том, что когда я звоню в LogOnuser, чтобы запустить интерактивный сеанс пользователя, а затем использовать CreateProcessAsuser, чтобы запустить приложение, приложение заканчивается в сеансе 0. < /p>

Все мой код - C#. < /P>

Вот соответствующий код: < /p>

.[DllImport("advapi32.dll", SetLastError=true)]
static extern bool LogonUser(
string principal,
string authority,
string password,
UInt32 logonType,
UInt32 logonProvider,
out IntPtr token);

[DllImport("advapi32.dll", SetLastError=true)]
static extern bool CreateProcessAsUser(
IntPtr hToken,
string lpApplicationName,
string lpCommandLine,
IntPtr lpProcessAttributes,
IntPtr lpThreadAttributes,
bool bInheritHandles,
int dwCreationFlags,
IntPtr lpEnvironment,
string lpCurrentDirectory,
ref STARTUPINFO lpStartupInfo,
ref PROCESS_INFORMATION lpProcessInformation);

IntPtr token;
LogonUser("UserName", ".", "Password",
LogonTypes.Interactive,LogonProviders.Default, out token)


string hd = Environment.ExpandEnvironmentVariables("%USERPROFILE%");

IntPtr envBlock = IntPtr.Zero;
CreateProcessAsUser(token, "PathToMenu.exe",
NORMAL_PRIORITY_CLASS |CREATE_UNICODE_ENVIRONMENT,
"WinSta0\\Default", hd, envBlock, "Menu");
< /code>

Может ли кто -нибудь сказать мне, что я делаю не так? < /p>

Подробнее здесь: https://stackoverflow.com/questions/782 ... -7-service
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»