4

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

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

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

4

2 回答 2

3

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

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

于 2008-09-19T18:19:29.610 回答
-1

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

于 2008-09-19T16:56:59.043 回答