在 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 游戏?

如何在 C# 中创建自定义登录 Windows 屏幕?

如何使用 .NET C# 从登录屏幕中隐藏用户?

每次进入Windows XP桌面前,总会出现一个用户登录的画面

Windows XP登录框自定义[关闭]

在 Windows 上使用 Jenkins 运行 Selenium 测试期间,如何在未实际登录机器时捕获屏幕截图?