Python,用两个路径和参数创建快捷方式

时间:2016-07-31 19:48:42

标签: python shortcut wsh

我正在尝试通过python创建一个快捷方式,它将在带有参数的另一个程序中启动一个文件。 E.g:

"C:\file.exe" "C:\folder\file.ext" argument

我试过的代码搞砸了:

from win32com.client import Dispatch
import os

shell = Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut(path)

shortcut.Targetpath = r'"C:\file.exe" "C:\folder\file.ext"'
shortcut.Arguments = argument
shortcut.WorkingDirectory = "C:\" #or "C:\folder\file.ext" in this case?
shortcut.save()

但是我得到了一个错误:

AttributeError: Property '<unknown>.Targetpath' can not be set.

我尝试过不同格式的字符串,谷歌似乎并不知道这个问题的解决方案

2 个答案:

答案 0 :(得分:4)

    menubar = tk.Menu(container)
    filemenu = tk.Menu(menubar, tearoff=0)
    filemenu.add_command(label="Save Settings", command=popupmsg("Error 404"))
    filemenu.add_separator() #adds dividor
    filemenu.add_command(label="Exit", command=quit)
    filemenu.add_cascade(label="File", menu=filemenu)

    tk.Tk.config(self,  menu=menubar)

Reference

答案 1 :(得分:0)

以下是如何在Python 3.6上执行此操作(不再找到@wombatonfire s解决方案的第二次导入)。

首先我做了pip install comtypes,然后是:

import comtypes
from comtypes.client import CreateObject
from comtypes.persist import IPersistFile
from comtypes.shelllink import ShellLink

# Create a link
s = CreateObject(ShellLink)
s.SetPath('C:\\myfile.txt')
# s.SetArguments('arg1 arg2 arg3')
# s.SetWorkingDirectory('C:\\')
# s.SetIconLocation('path\\to\\.exe\\or\\.ico\\file', 1)
# s.SetDescription('bla bla bla')
# s.Hotkey=1601
# s.ShowCMD=1
p = s.QueryInterface(IPersistFile)
p.Save("C:\\link to myfile.lnk", True)

# Read information from a link
s = CreateObject(ShellLink)
p = s.QueryInterface(IPersistFile)
p.Load("C:\\link to myfile.lnk", True)
print(s.GetPath())
# print(s.GetArguments())
# print(s.GetWorkingDirectory())
# print(s.GetIconLocation())
# print(s.GetDescription())
# print(s.Hotkey)
# print(s.ShowCmd)

请参阅 site-packages / comtypes / shelllink.py 以获取更多信息。