在Windows XP中使用C#在登录屏幕上显示窗口

我正在尝试使用C#创建一个服务,启动一个可以在Windows XP登录屏幕上显示的进程。

我发现一些代码在C ++中执行此操作。 C ++代码用于创建另一个进程,STARTUPINFO.lpDesktop设置为“WinSta0 \ WinLogon”。 然后,创建的进程将显示在Windows登录屏幕上。 我似乎找不到使用System.Diagnostic.Process类在C#中指定新进程的“桌面”的方法。

有谁知道如何用C#做到这一点?

解决方案是从C#代码调用kernel32.dll中的C ++ Win32 API函数CreateProcess。 此站点非常有助于为C#获取正确的函数签名:

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

我想你必须用C ++编写它,然后将其编译为DLL,然后从托管代码中调用DLL。