【发布时间】:2015-10-19 19:23:48
【问题描述】:
我希望在我的计算机屏幕保护程序启用时切换滚动锁定的窗口中始终在后台运行的应用程序,然后在禁用后将其切换回来,如果可能的话。
原因是我的键盘会根据滚动锁定灯的状态亮起。在我不使用的时候让键盘自动关灯会很酷。
我知道一些 VBscript 中的代码,一些 Python 中的代码,以及许多 VB 中的代码。我尝试使用来自this 的代码 sn-p 并将其变成这样:
strComputer = "computername"
Set wshShell =wscript.CreateObject("WScript.Shell")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
Do
WScript.Sleep 300
For Each objProcess In colProcesses
If Right(objProcess.Name, 4) = ".scr" Then
wshShell.SendKeys "{SCROLLLOCK}"
End If
Next
Loop
仅当程序在屏幕保护程序已打开时运行时才有效。 如果屏幕保护程序处于打开状态,请帮助我了解如何每 300 次进行一次检查,或者告诉我如何使用标题中列出的其他语言之一。
【问题讨论】:
-
乍一看,您的代码对我来说并不正确。它可能需要长达 5 分钟才能检测到屏幕保护程序,但这是我看到的唯一问题。如果屏幕保护程序已启动并且程序已经运行(并且您等待了 5 分钟)会发生什么?
-
@Syberdoor 为什么是 5 分钟?
-
对不起,我很困惑。我以某种方式假设 vbscript 睡眠就像 c 风格的睡眠,在几秒钟内而不是几毫秒内......忘记我说的话,虽然下面的 ansgars 答案是正确的
标签: python visual-studio vbscript screensaver