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

2024-09-30 22:14:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个应用程序,在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次检查一次,或者告诉我如何使用标题中列出的其他语言之一。在


Tags: 代码程序应用程序if屏幕windows原因键盘
1条回答
网友
1楼 · 发布于 2024-09-30 22:14:31

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

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Do
  WScript.Sleep 300
  Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")
  For Each objProcess In colProcesses
    If Right(objProcess.Name, 4) = ".scr" Then
      wshShell.SendKeys "{SCROLLLOCK}"
    End If 
  Next
Loop

相关问题 更多 >