【问题标题】:Detect when screensaver is no longer being displayed检测屏幕保护程序何时不再显示
【发布时间】:2012-09-27 10:56:48
【问题描述】:

我想确定计算机何时停止显示屏幕保护程序。我不是指何时显示用户的桌面,因为有时在 2 个事件之间会出现锁定屏幕。

作为一个小背景,我有一个警报应用程序。我希望能够通过移动鼠标或按任意键来使警报静音。

简历上没有密码,这很容易。但是,在锁定屏幕的情况下,我的应用在用户输入密码之前不会开始接收输入 - 这意味着在他们尝试登录时会发出警报。

有什么方法可以检测锁屏桌面何时显示并处理这种情况?我知道跨桌面的交互受到严重限制,但是否可以检测到(或者它是在显示屏幕保护程序的同时创建的,在这种情况下,我正在尝试错误的方法)?

如果有人能指点我一篇好的教程/文章或分享这方面的任何经验,我将不胜感激。

【问题讨论】:

    标签: .net screensaver lockscreen


    【解决方案1】:

    您可以轮询正在运行的进程列表,并检查任何进程的进程名称是否以 .scr 结尾 - 如果列表中存在 .scr,则屏幕保护程序正在运行。如果您上次检查时有一个,而现在没有 - 屏幕保护程序已停止。

    【讨论】:

    • 非常有趣的方法,我没有考虑过。我必须对其进行测试,但屏幕保护程序不会以不同的用户身份运行吗?例如,我需要管理员权限才能获取完整的进程列表并检测它?
    • 不确定那个。我适度确定它以当前用户身份运行。在任何一种情况下,您都可以让您自己的 Windows 服务以适当的权限运行以检查您。
    猜你喜欢
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 2015-08-29
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    相关资源
    最近更新 更多