Python 注册表脚本无输出

Python registry script no output

嘿,我是 python 的新手,我尝试执行我的注册表更改代码,但得到了 没有输出只是得到 "Process finished with exit code 0"。

import os
import winreg
def usbenordis(value):
    print(value)
    keyval = r"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor"
    if not os.path.exists(keyval):
        print("creating key")
        key = winreg.CreateKey(winreg.HKEY_LOCAL_MACHINE, keyval)
    registrykey= winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor", 0,KEY_WRITE)
    print("open key")
    if value == True:
        SetValueEx(registrykey,"start",0,REG_DWORD,4)
        print("usb disabled")
    elif value == False:
        SetValueEx(registrykey,"start",0,REG_DWORD,3)
        print("usb enabled")
    else:
        print("op cancelled")
        winreg.CloseKey(registrykey)
    return True

def main():
    usbenordis(True)

尝试改变这个:

if not os.path.exists("keyval"):

对此:

if not os.path.exists(keyval):

您已将 keyval 定义为变量,但随后将 字符串 'keyval' 传递给函数。

您还需要将布尔值更改为首字母大写(true = True,false = False)

编辑:您确定是在调用 main() 函数吗?尝试将以下内容添加到代码底部和 运行(在任何函数之外);

if __name__ == "__main__":
    main()

工作解决方案

import os
import winreg
def usbenordis(value):
   # print(value)
    keyval = r"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR"
    if not os.path.exists(keyval):
      #  print("creating key")
        key = winreg.CreateKey(winreg.HKEY_LOCAL_MACHINE, r"SYSTEM\CurrentControlSet\Services\USBSTOR")
    registrykey= winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SYSTEM\CurrentControlSet\Services\USBSTOR", 0,winreg.KEY_ALL_ACCESS)
   # print("open key")
    if value == "disable":
        winreg.SetValueEx(registrykey,"start",0,winreg.REG_DWORD,4)
        print("usb disabled")
    elif value == "enable":
        winreg.SetValueEx(registrykey,"start",0,winreg.REG_DWORD,3)
        print("usb enabled")
    else:
        print("op cancelled")
        winreg.CloseKey(registrykey)
    return True

def main():
  #  print("input enable or disable")
    X=input("Input enable or disable:")
    usbenordis(X)


if __name__== "__main__":
    main()