簡體   English   中英

Python - 使用參數創建快捷方式

[英]Python - Create Shortcut with arguments

使用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()

您的代碼無誤地為我工作。 (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()

當我嘗試跟蹤時,我將AttributeError與你的類似(將列表分配給Arguments屬性。)

>>> 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.

“..TargetPath應該只包含[一個]可執行路徑。” 兩種方式不正確:

  1. 目標也可能包含可執行文件的參數。

例如,我有一個文件[D:\\ DATA \\ CCMD \\ Expl.CMD],其基本代碼行是START Explorer.exe“%Target%”

它的一個例子是D:\\ DATA \\ CCMD \\ Expl.CMD“D:\\ DATA \\ SYSTEM - NEW INSTALL PROGS”

整行是您所指的“可執行文件”。

  1. 目標根本不必是“可執行”。 它可以是操作系統可以操作的任何文件,例如那些默認操作以文件作為參數運行的文件類型,例如:“My File.txt”

此文件類型的“默認操作”是使用文本編輯器打開它。 實際的可執行文件運行不明確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM