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()
嘿,我是 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()