我正在尝试使用 C# 创建一个服务,该服务启动一个可以显示在 Windows XP 登录屏幕上的进程。
我发现了一些在 C++ 中执行此操作的代码。C++ 代码用于创建另一个进程的服务,其中 STARTUPINFO.lpDesktop 设置为“WinSta0\WinLogon”。然后将创建的进程显示到 Windows 登录屏幕。我似乎找不到使用 System.Diagnostic.Process 类在 C# 中指定新进程的“桌面”的方法。
有谁知道如何用 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。