好的,在 Windows 10 中通过修改注册表,可以非常方便地为文件或文件夹的右键菜单添加自定义项,并让它执行一个 Python 脚本来弹出一个窗体。
这是一个非常实用的功能,比如你可以做一个 "查看文件元数据"、"用我的程序处理这个文件夹" 等工具。
重要警告: 操作将涉及修改 Windows 注册表。修改注册表有风险,错误的操作可能导致系统不稳定或无法启动。在操作前,强烈建议您备份注册表。
下面我将分三步来详细讲解如何实现:
编写 Python 脚本 (弹出窗体)
修改注册表 (添加右键菜单项)
测试和移除
第 1 步:编写 Python 脚本 (show_info.py)
首先,我们需要一个 Python 脚本,它能接收一个文件或文件夹路径作为参数,然后在一个图形界面(窗体)中显示这个路径。我们将使用 Python 内置的 tkinter 库,因为它无需安装,非常方便。
创建一个名为 show_info.py 的文件,内容如下:
import tkinter as tk from tkinter import messagebox import sys def show_popup_window(path): """ 创建一个简单的 Tkinter 窗口来显示接收到的路径。 """ # 创建主窗口 root = tk.Tk() root.title("自定义右键菜单") # 获取屏幕宽度和高度 screen_width = root.winfo_screenwidth() screen_height = root.winfo_screenheight() # 设置窗口大小和位置 window_width = 500 window_height = 200 x_coordinate = int((screen_width / 2) - (window_width / 2)) y_coordinate = int((screen_height / 2) - (window_height / 2)) root.geometry(f"{window_width}x{window_height}+{x_coordinate}+{y_coordinate}") # 创建一个标签来显示信息 label_text = f"你右键点击了:\n\n{path}" label = tk.Label(root, text=label_text, padx=20, pady=20, font=("Microsoft YaHei", 12)) label.pack(expand=True) # 创建一个关闭按钮 close_button = tk.Button(root, text="关闭", command=root.destroy, width=10) close_button.pack(pady=10) # 运行主循环 root.mainloop() if __name__ == "__main__": # Windows 右键菜单会把点击的文件/文件夹路径作为第一个参数传递进来 # sys.argv[0] 是脚本自己的名字 # sys.argv[1] 是第一个参数,也就是我们需要的路径 if len(sys.argv) > 1: file_path = sys.argv[1] show_popup_window(file_path) else: # 如果直接运行脚本,没有参数,则显示提示信息 show_popup_window("没有文件或文件夹路径被传递!")
把这个 show_info.py 文件保存在一个你不会轻易移动或删除的位置,例如 D:\MyPythonScripts\show_info.py。
第 2 步:修改注册表
这是最关键的一步。我们将通过创建一个 .reg 文件来自动修改注册表,这比手动修改更安全、更方便。
2.1 找到你的 python.exe 路径首先,你必须知道你的 Python 解释器 python.exe 的完整路径。打开命令提示符(CMD)并输入:
where python
它会显示一个或多个路径。选择你常用的那个,例如 C:\Users\YourUser\AppData\Local\Programs\Python\Python39\python.exe。
2.2 创建 .reg 注册表脚本打开记事本。
将下面的代码复制到记事本中。
仔细修改代码中的路径为你自己的真实路径! 注意 \ 需要写成 \\(双反斜杠)。
Windows Registry Editor Version 5.00 ; 为所有文件添加右键菜单 [HKEY_CLASSES_ROOT\*\shell\ShowMyInfoWindow] @="用 Python 显示信息" "Icon"="imageres.dll,78" [HKEY_CLASSES_ROOT\*\shell\ShowMyInfoWindow\command] @="\"C:\\Users\\YourUser\\AppData\\Local\\Programs\\Python\\Python39\\python.exe\" \"D:\\MyPythonScripts\\show_info.py\" \"%1\"" ; 为所有文件夹添加右键菜单 [HKEY_CLASSES_ROOT\Directory\shell\ShowMyInfoWindow] @="用 Python 显示信息" "Icon"="imageres.dll,78" [HKEY_CLASSES_ROOT\Directory\shell\ShowMyInfoWindow\command] @="\"C:\\Users\\YourUser\\AppData\\Local\\Programs\\Python\\Python39\\python.exe\" \"D:\\MyPythonScripts\\show_info.py\" \"%1\""
代码解释:
Windows Registry Editor Version 5.00: .reg 文件的标准开头。
[HKEY_CLASSES_ROOT\*\shell\ShowMyInfoWindow]:
HKEY_CLASSES_ROOT\* 表示应用到所有类型的文件。
shell 是存放右键菜单项的地方。
ShowMyInfoWindow 是我们自定义项的内部名称,可以随便取。
@="用 Python 显示信息": @ 表示默认值,这里设置的是菜单上显示的文本。
"Icon"="imageres.dll,78": (可选) 为菜单项设置一个图标。imageres.dll是系统图标库,78 是其中一个图标的索引。
[... \command]: 这个键存放点击菜单后要执行的命令。
@="\"C:\\...\\python.exe\" \"D:\\...\\show_info.py\" \"%1\"": 这是核心命令。
路径中的 \ 必须转义为 \\。
第一个路径是你的 python.exe 路径。
第二个路径是你的 .py 脚本路径。
"%1" 是一个占位符,Windows 会自动用你右键点击的文件或文件夹的完整路径替换它。
所有路径都用引号括起来,以防路径中包含空格。
[HKEY_CLASSES_ROOT\Directory\shell\...]: 这部分和上面类似,但 Directory 表示应用到所有文件夹。
2.3 导入注册表将修改好的记事本文件保存,文件名可以叫 add_menu.reg (后缀名必须是 .reg)。
双击你保存的 add_menu.reg 文件。
系统会弹出用户账户控制(UAC)和注册表编辑器的警告,依次点击 "是" 和 "确定"。
恭喜! 现在你的右键菜单已经添加成功了。
第 3 步:测试和移除
测试现在,随便找一个文件或文件夹,右键点击它,你应该能看到一个名为 "用 Python 显示信息" 的新选项。
点击它,稍等片刻,就会弹出我们用 Python 编写的窗体,并显示你所点击的文件/文件夹的路径。
如何移除如果你想移除这个右键菜单项,也非常简单。
新建一个记事本文件。
复制下面的代码进去:
Windows Registry Editor Version 5.00 ; 移除文件的右键菜单 [-HKEY_CLASSES_ROOT\*\shell\ShowMyInfoWindow] ; 移除文件夹的右键菜单 [-HKEY_CLASSES_ROOT\Directory\shell\ShowMyInfoWindow]
注意,在要删除的键路径前面加上一个减号 -,就表示删除这个键及其所有子项。
将文件保存为 remove_menu.reg。
双击运行它,确认导入即可。右键菜单项就会被干净地移除。
网友回复