Mon hack actuel jusqu'à ce que ce bug soit corrigé :
# 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()
EDIT
Bizarre, après avoir fait une fois la désactivation/activation, l'économiseur d'écran fonctionne bien. Peut-être que la désactivation fait quelque chose à la gestion de l'énergie que l'activation ne rétablit pas. Donc, un simple fichier batch (.bat) pour désactiver/activer le pilote au démarrage peut être suffisant.
"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