屏幕保护程序激活时切换滚动锁定

时间:2015-10-19 00:48:48

标签: python visual-studio vbscript screensaver

我希望在Windows中随时在后台运行一个应用程序,当我的计算机的屏幕保护程序启用时切换滚动锁定,然后在禁用后切换回来,如果可能的话。

原因是我的键盘会根据滚动锁定灯的状态亮起。当我不使用它时,让键盘自动关灯会很酷。

我知道VBscript中的一些代码,一些Python中的代码,以及VB中的许多代码。我尝试使用this中的代码段并将其转换为:

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个刻度进行一次检查,或者告诉我如何使用标题中列出的其他语言。

1 个答案:

答案 0 :(得分:0)

WMI查询的结果反映了运行查询时的状态。它不会自动刷新,因此不会获取在初始运行后启动的任何进程。将查询移动到外部循环中,以便在每次迭代时重新运行:

%% TotalSamples=1000
FinalProbs =

0.3180
0.7310
0.3250
0.6260

%% TotalSamples=100000

FinalProbs =

0.3303
0.7440
0.3294
0.5964