You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用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

火山引擎 最新活动