Python-使用参数创建快捷方式

Python-使用参数创建快捷方式,python,win32com,Python,Win32com,使用win32com.client,我试图在文件夹中创建一个简单的快捷方式。不过,快捷方式我希望有参数,除非我不断得到以下错误 Traceback (most recent call last): File "D:/Projects/Ms/ms.py", line 153, in <module> scut.TargetPath = '"C:/python27/python.exe" "D:/Projects/Ms/msd.py" -b ' + str(loop7) F

使用win32com.client,我试图在文件夹中创建一个简单的快捷方式。不过,快捷方式我希望有参数,除非我不断得到以下错误

Traceback (most recent call last):
  File "D:/Projects/Ms/ms.py", line 153, in <module>
    scut.TargetPath = '"C:/python27/python.exe" "D:/Projects/Ms/msd.py" -b ' + str(loop7)

File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 570, in __setattr__
    raise AttributeError("Property '%s.%s' can not be set." % (self._username_, attr))
AttributeError: Property '<unknown>.TargetPath' can not be set.

你的代码对我来说没有错误。(Windows XP 32位、Python 2.7.5、pywin32-216)

(我稍微修改了您的代码,因为
TargetPath
应该只包含可执行路径。)

当我尝试执行以下操作时,我得到了与您类似的AttributeError(将列表分配给
参数
属性)

>scut.Arguments=[]
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“c:\python27\lib\site packages\win32com\client\dynamic.py”,第570行,位于\uuu setattr中__
raise AttributeError(“无法设置属性“%s.%s”。%(self.\u username\uu,attr))
AttributeError:无法设置属性“.Arguments”。
“.TargetPath应仅包含[a]可执行路径。”在两个方面不正确:

  • 目标还可能包含可执行文件的参数
  • 例如,我有一个文件[D:\DATA\CCMD\Expl.CMD],其基本代码行是 启动Explorer.exe“%Target%”

    其使用的一个例子是 D:\DATA\CCMD\Expl.CMD“D:\DATA\SYSTEM-新安装程序”

    这整行代码就是您所指的“可执行文件”

  • 目标根本不必是“可执行文件”。它可以是操作系统可以操作的任何文件,例如那些默认操作以文件作为参数运行的可执行文件类型,例如: “我的文件.txt”
  • 此文件类型的“默认操作”是使用文本编辑器打开它。实际运行的可执行文件不是显式的

    ws = win32com.client.Dispatch("wscript.shell")
    scut = ws.CreateShortcut("D:/Projects/Ms/TestDir/testlink.lnk")
    scut.TargetPath = '"C:/python27/python.exe" "D:/Projects/Ms/msd.py" -b 0'
    scut.Save()
    
    import win32com.client
    ws = win32com.client.Dispatch("wscript.shell")
    scut = ws.CreateShortcut('run_idle.lnk')
    scut.TargetPath = '"c:/python27/python.exe"'
    scut.Arguments = '-m idlelib.idle'
    scut.Save()
    
    >>> scut.Arguments = []
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "c:\python27\lib\site-packages\win32com\client\dynamic.py", line 570, in __setattr__
        raise AttributeError("Property '%s.%s' can not be set." % (self._username_, attr))
    AttributeError: Property '<unknown>.Arguments' can not be set.