Win10:游戏控制器阻止屏幕保护程序

Win10:游戏控制器阻止屏幕保护程序

我的游戏控制器阻止屏幕保护程序启动。我该如何解决?

我以前通过设备管理器解决这个问题,但是现在,当我单击设备管理器中的设备时,电源管理选项卡不见了。

相关问题:为了找到控制器是罪魁祸首,我进行了手动测试。有没有更好的方法来找到它?我注意到它什么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

相关内容