如何启动不活动的工作站锁定?

时间:2018-10-03 14:58:18

标签: security winapi interactive

如果调用 LockWorkstation API,它将立即锁定工作站。

但是当使用类似Machine Inactivity Limit组策略的内容时,您有一个宽限期,其中:

(即使禁用了屏幕保护程序,也会发生这种消隐)。

据我所知,此宽限期的存在是内部实现细节,即使其值存在于注册表中:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\ScreenSaverGracePeriod

它的使用或与非活动锁相关的任何其他行为,我认为是内部实现细节。

作为一个应用程序,我如何触发与非活动锁触发的动作相同的动作(以使发生的事情应该发生)?

因此,我不想调用LockWorkStation,而是想调用Windows调用的任何东西,这样:

  • 使屏幕空白
  • 给予宽限期
  • 锁定工作站

1 个答案:

答案 0 :(得分:0)

windowsAPI wi帮助在这里...

GetLastInputInfo检索上一个输入事件的时间(以毫秒为单位)。

要使屏幕空白:

HWND_BROADCAST = 0xFFFF
WM_SYSCOMMAND = 0x0112
SC_MONITORPOWER = 0xF170

SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2)

2 =关闭显示

最后锁定工作站:

LockWorkStation api函数

只有在交互式桌面上运行的进程才能调用LockWorkStation功能。另外,用户必须已登录,并且工作站不能已经锁定。