【问题标题】:Screensaver Hides Desktop屏幕保护程序隐藏桌面
【发布时间】:2026-01-09 03:45:01
【问题描述】:

我们想构建一个屏幕保护程序,显示桌面和正在运行的应用程序,但通过显示登录屏幕来阻止用户输入。这个想法是构建一个没有窗口或透明窗口的 Windows 应用程序。但是,一旦屏幕保护程序被激活,桌面和所有应用程序都会从​​屏幕上隐藏。

是否可以在不隐藏桌面的情况下启动屏幕保护程序?

谢谢,

bja

【问题讨论】:

    标签: c# .net screensaver windows-screensaver


    【解决方案1】:

    您是否可以将其实现为屏幕保护程序以外的其他东西?我假设 Windows API 确实有一个方法可以让你知道计算机空闲了多长时间(否则,管理屏幕保护程序的东西是如何做到的?),所以如果你使用它,你可以设置你的应用程序,使其作为后台进程持续运行,并在计算机空闲一段时间后弹出模式对话框(或您对透明窗口的想法)或提示用户登录信息的内容。

    【讨论】:

    • 谢谢,这似乎是最简单的方法。
    【解决方案2】:

    为什么你不能在 SS 开始时抓住屏幕的图像。然后用它作为你的 SS 的背景。

    Vista 有一个气泡屏幕保护程序,它会开始在屏幕上放置气泡。不知道他们是怎么做到的。

    【讨论】:

    • 我认为目的是仍然监视应用程序活动,同时防止在不提供密码的情况下对控制台进行任何输入。有一种名为透明屏幕锁定 (e-motional.com/TScreenLock.htm) 的产品声称可以做到这一点。但问题指定“构建屏幕保护程序”而不是“购买屏幕保护程序”,所以我不确定这是否能满足要求。
    • 是的,我可以看到。我认为困难的部分将是通过显示登录屏幕来防止用户交互。我不确定是否有一种简单的方法可以锁定计算机并显示桌面。事实上,从安全的角度来看,这可能是不可能的。我知道我锁定了屏幕,所以当我离开时进入我办公室的人看不到上面的内容。
    • 感谢 cmets。是的,这个想法是在屏幕上显示一些监控工具,同时不允许任何输入。如果“构建屏幕保护程序”失败,则可以选择“购买屏幕保护程序”。 :)
    【解决方案3】:

    您最好只创建一个带有透明窗口的全屏应用程序,该窗口在计时器(如屏幕保护程序)上启动。屏幕保护程序功能虽然与您所做的类似,但功能却大不相同。

    【讨论】:

      【解决方案4】:

      作为替代建议,您始终可以使用服务(或后台应用程序)来收集您希望这些监控工具显示的信息,甚至只是抓取(隐藏)桌面的定期屏幕截图,然后让您的屏幕保护程序查询该应用程序以获取它需要显示的数据。

      这样,您可以获得屏幕保护程序的好处(安全桌面、通常的 Windows 登录顺序等),但仍然可以显示您需要的内容。

      【讨论】: