import os
import pythoncom
from win32com.shell import shell
from win32com.shell import shellcondef set_shortcut(): # 如无需特别设置图标,则可去掉iconname参数try:filename = r"D:\AppServ\timer\win_cron_zq\timer.exe" # 要创建快捷方式的文件的完整路径iconname = ""lnkname = r"C:\Users\pc1\Desktop" + r"\timer.exe.lnk" # 将要在此路径创建快捷方式shortcut = pythoncom.CoCreateInstance(shell.CLSID_ShellLink, None,pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IShellLink)shortcut.SetPath(filename)shortcut.SetWorkingDirectory(r"D:\AppServ\timer\win_cron_zq") # 设置快捷方式的起始位置, 不然会出现找不到辅助文件的情况shortcut.SetIconLocation(iconname, 0) # 可有可无,没有就默认使用文件本身的图标if os.path.splitext(lnkname)[-1] != '.lnk':lnkname += ".lnk"shortcut.QueryInterface(pythoncom.IID_IPersistFile).Save(lnkname, 0)return Trueexcept Exception as e:print(e.args)return False
刚开始没有设置shortcut.SetWorkingDirectory(r"D:\AppServ\timer\win_cron_zq")这一步,结果快捷方式虽然能执行,总是提示找不到相应的其他相辅相成的文件, 加上这个起始位置设置后, 就可以了 ,这里记一下