Windows 7 如何检查Windows桌面是否已锁定
Q:在AutoIt中,如何检查Windows桌面是否已锁定 我所拥有的 让我们以AutoIt脚本为例。它在不确定循环中ping URL,并在托盘提示中报告响应时间Windows 7 如何检查Windows桌面是否已锁定,windows-7,autoit,Windows 7,Autoit,Q:在AutoIt中,如何检查Windows桌面是否已锁定 我所拥有的 让我们以AutoIt脚本为例。它在不确定循环中ping URL,并在托盘提示中报告响应时间 While 1 $responsetime = Ping("www.google.com") TrayTip("", $responsetime, 1) sleep(5000) Wend 期望结果 仅当桌面未锁定时,新脚本才应ping。但我还没有找到一个可靠的方法来检查这个 While 1 $isLo
While 1
$responsetime = Ping("www.google.com")
TrayTip("", $responsetime, 1)
sleep(5000)
Wend
期望结果
仅当桌面未锁定时,新脚本才应ping。但我还没有找到一个可靠的方法来检查这个
While 1
$isLocked = secretFunctionIdontKnow
If $isLocked = false Then
Local $responsetime = Ping("www.google.com")
TrayTip("", $responsetime, 1)
EndIf
sleep(5000)
Wend
提示:该功能似乎不够可靠,因为没有任何打开窗口的桌面即使在解锁时也会返回0(=false)根据我上面的评论,您可以使用以下
secretfunctionidonknow
;-)
幸运的是,程序切换器没有返回值TaskSwitcherWnd
,所以在Windows7EnterpriseSP1 64位下,这似乎对我有效
不要错过函数调用中的括号;-) 使用
wingtitle
,您将无法从锁屏中获得标题:-(但是锁屏来自类TaskSwitcherWnd
。因此,您只需查看wingtclassist
的结果是否在其第一个位置有此项……如果使用{Alt}+{Tab},也将是正确的。)
用于程序切换,但我认为在切换程序时不进行ping是一个公平的折衷。如果不使用StringSplit
但StringLeft($list,StringInStr($list,@LF)-1)
…由您决定。+1该函数正在工作。(顺便说一句,更好的是{Alt}+{Tab}
没有给我一个真实的答案^^)是的,这也是我所经历的……但是当你将捕获光标从AutoIt窗口信息工具移到程序切换器上方时,{Alt}{Tab}
,您将获得类TaskSwitcherWnd
,结果是…无论如何,TaskSwitcherWnd
窗口似乎不是活动窗口,但是没有类的窗口将返回,而AutoIt可以识别为函数wingtlasslist(“[active]”)
。从而使我的secretfunctionidonknow
返回false…viola。
Func secretFunctionIdontKnow()
$classes = StringSplit(WinGetClassList("[ACTIVE]"), @LF, 2)
Return $classes[0] == "TaskSwitcherWnd"
EndFunc