如何使用Python在任务栏和桌面创建快捷方式?
嘿,我来分享下用Python在Windows系统下创建桌面和任务栏快捷方式的具体方法——毕竟这俩位置的实现逻辑还不太一样,得分开说:
一、创建桌面快捷方式
这个操作比较 straightforward,借助pywin32库就能轻松实现。首先得先安装这个库:
pip install pywin32
然后用下面的代码就能生成桌面快捷方式,我加了详细注释,你可以根据自己的需求调整参数:
import win32com.client import os def create_desktop_shortcut(target_path, shortcut_name, icon_path=None): # 获取当前用户的桌面路径 desktop_path = os.path.join(os.environ['USERPROFILE'], 'Desktop') # 拼接出快捷方式的完整路径 shortcut_full_path = os.path.join(desktop_path, f"{shortcut_name}.lnk") # 创建WScript.Shell对象,用来操作快捷方式 shell = win32com.client.Dispatch("WScript.Shell") shortcut = shell.CreateShortCut(shortcut_full_path) # 设置快捷方式指向的目标程序/文件路径 shortcut.Targetpath = target_path # 设置工作目录(可选,默认是目标文件所在的目录) shortcut.WorkingDirectory = os.path.dirname(target_path) # 设置快捷方式图标(可选,不设置就用目标文件的默认图标) if icon_path: shortcut.IconLocation = icon_path # 保存生成的快捷方式 shortcut.Save() print(f"桌面快捷方式已搞定:{shortcut_full_path}") # 示例调用:给Python.exe创建一个名为「我的Python」的桌面快捷方式 create_desktop_shortcut( target_path=r"C:\Python39\python.exe", shortcut_name="我的Python", icon_path=r"C:\Python39\python.exe, 0" # 0表示使用文件里的第一个图标 )
二、创建任务栏快捷方式
任务栏的情况就有点特殊了——Windows没有直接创建任务栏快捷方式的API,得通过「固定已有快捷方式」或者「复制到指定系统目录」来实现,我给你两种可行方案:
方案1:先建桌面快捷方式,再固定到任务栏
这种方法更稳妥,适配大多数Windows版本。核心思路是先创建一个桌面快捷方式,然后调用系统Shell的「固定到任务栏」命令:
import win32com.client import os # 先复用上面的create_desktop_shortcut函数 def pin_to_taskbar(shortcut_path): # 初始化Shell对象 shell = win32com.client.Dispatch("Shell.Application") # 获取快捷方式所在的文件夹对象 folder = shell.Namespace(os.path.dirname(shortcut_path)) # 获取快捷方式对应的文件项 shortcut_item = folder.ParseName(os.path.basename(shortcut_path)) # 遍历所有可用的右键菜单命令,找到「固定到任务栏」的选项 target_verb = None for verb in shortcut_item.Verbs(): # 兼容中英文系统,判断命令名称 if "固定到任务栏" in verb.Name or "Pin to taskbar" in verb.Name: target_verb = verb break if target_verb: target_verb.DoIt() print("快捷方式已经固定到任务栏啦") else: print("没找到「固定到任务栏」的命令,可能是系统版本不兼容或者权限不够哦") # 示例调用:先创建桌面快捷方式,再固定到任务栏 desktop_shortcut_path = os.path.join(os.environ['USERPROFILE'], 'Desktop', '我的Python.lnk') if not os.path.exists(desktop_shortcut_path): create_desktop_shortcut(r"C:\Python39\python.exe", "我的Python") pin_to_taskbar(desktop_shortcut_path)
方案2:直接复制快捷方式到任务栏系统目录
Windows把固定在任务栏的快捷方式存在这个隐藏目录里:%APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar。你可以直接把已有的.lnk文件复制到这里,但要注意两点:一是这个目录默认隐藏,二是有些系统可能需要管理员权限才能操作,复制后可能要重启资源管理器才会显示:
import shutil import os def copy_to_taskbar_folder(shortcut_path): # 拼接任务栏快捷方式的存储目录 taskbar_shortcut_dir = os.path.join( os.environ['APPDATA'], r"Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar" ) # 确保目录存在,不存在就创建 os.makedirs(taskbar_shortcut_dir, exist_ok=True) # 复制快捷方式到目标目录 shutil.copy(shortcut_path, taskbar_shortcut_dir) print(f"快捷方式已复制到任务栏目录:{taskbar_shortcut_dir}") # 示例调用 copy_to_taskbar_folder(desktop_shortcut_path)
一些注意事项
- 以上方法只适用于Windows系统,macOS或Linux的快捷方式逻辑完全不同,得另写代码
- 运行脚本时最好确保有足够的权限,尤其是操作系统目录或者调用Shell动词的时候
- 如果目标路径带空格,一定要用原始字符串(比如
r"C:\Program Files\...")或者转义字符,避免路径解析出错
内容的提问来源于stack exchange,提问作者isl65




