Отображение окна на экране входа в систему с помощью C# в Windows XP

Я пытаюсь создать службу с C#, которая запускает процесс, который может отображаться на экране входа в Windows XP.

Я нашел код, который делает это на C++. Код C++ предназначен для службы, которая создает другой процесс с STARTUPINFO.lpDesktop, для которого установлено значение "WinSta0\WinLogon". Затем созданный процесс отображается на экране входа в Windows. Я не могу найти способ указать "рабочий стол" нового процесса в C# с помощью класса System.Diagnostic.Process.

Кто-нибудь знает, как это сделать с C#?

2 ответа

Решение

Решением было вызвать функцию C++ Win32 API CreateProcess из kernel32.dll из кода C#. Этот сайт был очень полезен для получения правильной сигнатуры функции для C#:

http://www.pinvoke.net/default.aspx/kernel32/CreateProcess.html

Я думаю, что вам придется написать это на C++, скомпилировать это в DLL и затем вызвать DLL из вашего управляемого кода.

Другие вопросы по тегам