使用python37编写脚本遍历SOFTWAREMicrosoftWindowsCurrentVersionExplorerAutoplayHandlersKnownDevices中所有lable对应的信息并用图形界面展示
要使用Python 3.7编写脚本来遍历注册表中的信息,并使用图形界面展示,我们可以使用tkinter库来创建图形界面,并使用winreg库来访问注册表。
首先,我们需要导入所需的库:
import tkinter as tk
from tkinter import ttk
import winreg
然后,我们可以创建一个函数来获取注册表中的信息:
def get_autoplay_handlers():
key_path = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\KnownDevices"
handlers = []
try:
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, key_path)
i = 0
while True:
try:
subkey_name = winreg.EnumKey(key, i)
subkey_path = f"{key_path}\\{subkey_name}"
subkey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, subkey_path)
label = winreg.QueryValueEx(subkey, "Label")[0]
handlers.append(label)
i += 1
except OSError:
break
except FileNotFoundError:
pass
return handlers
接下来,我们可以创建一个图形界面来展示获取到的信息:
def create_ui():
handlers = get_autoplay_handlers()
root = tk.Tk()
root.title("Autoplay Handlers")
tree = ttk.Treeview(root)
tree["columns"] = ("label")
tree.column("#0", width=200)
tree.column("label", width=200)
tree.heading("#0", text="Index")
tree.heading("label", text="Label")
for i, handler in enumerate(handlers):
tree.insert("", "end", text=str(i+1), values=(handler,))
tree.pack(expand=True, fill="both")
root.mainloop()
最后,我们可以调用create_ui()函数来展示图形界面:
if __name__ == "__main__":
create_ui()
完整的脚本如下所示:
import tkinter as tk
from tkinter import ttk
import winreg
def get_autoplay_handlers():
key_path = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\KnownDevices"
handlers = []
try:
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, key_path)
i = 0
while True:
try:
subkey_name = winreg.EnumKey(key, i)
subkey_path = f"{key_path}\\{subkey_name}"
subkey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, subkey_path)
label = winreg.QueryValueEx(subkey, "Label")[0]
handlers.append(label)
i += 1
except OSError:
break
except FileNotFoundError:
pass
return handlers
def create_ui():
handlers = get_autoplay_handlers()
root = tk.Tk()
root.title("Autoplay Handlers")
tree = ttk.Treeview(root)
tree["columns"] = ("label")
tree.column("#0", width=200)
tree.column("label", width=200)
tree.heading("#0", text="Index")
tree.heading("label", text="Label")
for i, handler in enumerate(handlers):
tree.insert("", "end", text=str(i+1), values=(handler,))
tree.pack(expand=True, fill="both")
root.mainloop()
if __name__ == "__main__":
create_ui()
运行该脚本后,将会展示一个包含Autoplay Handlers标签信息的图形界面
原文地址: http://www.cveoy.top/t/topic/hYq3 著作权归作者所有。请勿转载和采集!