使用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.
我的代码看起来像这样。我尝试了多种不同的变量,但似乎无法做到正确。我做错了什么?
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()
答案 0 :(得分:5)
您的代码无误地为我工作。 (Windows XP 32位,Python 2.7.5,pywin32-216)。
(我稍微修改了你的代码,因为TargetPath
应该只包含可执行路径。)
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()
当我尝试跟随(将列表分配给Arguments
属性时,我的AttributeError与您的类似。)
>>> 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.
答案 1 :(得分:0)
“.. TargetPath应该只包含[an]可执行路径。”两种方式不正确:
例如,我有一个文件[D:\ DATA \ CCMD \ Expl.CMD]其基本代码行是 START Explorer.exe“%Target%”
其使用的一个例子是 D:\ DATA \ CCMD \ Expl.CMD“D:\ DATA \ SYSTEM - NEW INSTALL PROGS”
这整行是你所指的“可执行文件”。
此文件类型的“默认操作”是使用文本编辑器打开它。实际的可执行文件运行不明确。