我的游戏控制器阻止屏幕保护程序启动。我该如何解决?
我以前通过设备管理器解决这个问题,但是现在,当我单击设备管理器中的设备时,电源管理选项卡不见了。
相关问题:为了找到控制器是罪魁祸首,我进行了手动测试。有没有更好的方法来找到它?我注意到它什么powercfg -requests
都没有返回。
更多信息:
- 该控制器是 PS5 Dualsense,被检测为 xbox 360 控制器。
- 鼠标和键盘也没有电源管理选项卡。
答案1
在该错误修复之前,我当前的破解方法是:
# Toggle (disable/enable device) a game controller that prevents the screen saver from running; based on devcon.exe (from Windows Driver Kit)
# https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/devcon-examples
import colorama, time, subprocess
devcon = r'"C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe"'
def print_red( st ):
print(colorama.Fore.RED + colorama.Style.BRIGHT + st + colorama.Style.RESET_ALL)
def print_green( st ):
print(colorama.Fore.GREEN + colorama.Style.BRIGHT + st + colorama.Style.RESET_ALL)
def main():
# query
cmd = "%s status *game controller" % devcon
out = subprocess.check_output(cmd).decode("utf-8")
print( out )
if out.find( "1 matching device(s) found." ) != -1:
print( 'Found' )
else:
print_red( 'Not found!' )
input()
return
if out.find( "Driver is running." ) != -1:
print_red( 'Disabling' )
cmd = "%s disable *game controller" % devcon
out = subprocess.check_output(cmd).decode("utf-8")
print( out )
else:
print_green( 'Enabling' )
cmd = "%s enable *game controller" % devcon
out = subprocess.check_output(cmd).decode("utf-8")
print( out )
time.sleep(1)
if __name__ == "__main__":
main()
编辑
奇怪的是,禁用/启用一次后,屏幕保护程序工作正常。也许禁用会对电源管理产生影响,而启用不会恢复。因此,在启动时禁用/启用驱动程序的简单批处理文件 (.bat) 可能就足够了。
"C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe" disable *game controller
"C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe" enable *game controller