在 Windows XP 中使用 C# 在登录屏幕上显示窗口
Posted
技术标签:
【中文标题】在 Windows XP 中使用 C# 在登录屏幕上显示窗口【英文标题】:Displaying Window on Logon Screen Using C# in Windows XP 【发布时间】:2010-09-11 07:58:06 【问题描述】:我正在尝试使用 C# 创建一个服务,该服务启动一个可显示在 Windows XP 登录屏幕上的进程。
我发现了一些在 C++ 中执行此操作的代码。 C++ 代码用于创建另一个进程的服务,其中 STARTUPINFO.lpDesktop 设置为“WinSta0\WinLogon”。然后将创建的进程显示到 Windows 登录屏幕。我似乎找不到使用 System.Diagnostic.Process 类在 C# 中指定新进程的“桌面”的方法。
有人知道如何用 C# 做到这一点吗?
【问题讨论】:
你能分享你的 XP 代码吗? 【参考方案1】:解决方案是从 C# 代码中的 kernel32.dll 调用 C++ Win32 API 函数 CreateProcess。该站点对于获取 C# 的正确函数签名非常有帮助:
http://www.pinvoke.net/default.aspx/kernel32/CreateProcess.html
【讨论】:
【参考方案2】:我认为您必须用 C++ 编写它,将其编译为 DLL,然后从您的托管代码中调用该 DLL。
【讨论】:
以上是关于在 Windows XP 中使用 C# 在登录屏幕上显示窗口的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C# 或免费 XP 工具卸载或删除 Windows XP Sp3 游戏?