使用python更改Windows快捷方式.lnk文件的图标

Ben*_*jie 5 python windows icons lnk

.lnk我想在创建文件后更改其图标。到目前为止,这是我的主要代码:

import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut("shortcut.lnk")
shortcut.Targetpath = "C:\\Users\Benjie\AppData\Local\Programs\Python\Python36\python.exe"
shortcut.save()
Run Code Online (Sandbox Code Playgroud)

这将创建一个带有 python 图标的快捷方式,但我想将其更改为不同的图标,如果可能的话,更改为不同文件的图标.exe。我怎样才能做到这一点?

我最好使用 Windows api 库之一,但如果不可能,外部库也可以工作。

谢谢

Ben*_*jie 9

好吧,经过几个小时的研究我终于找到了我要找的东西:shortcut.IconLocation。这会将快捷方式的图标设置为 .exe、.dll、.icl 或 .ico 文件中的图标。例如:

import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortcut("shortcut.lnk")
shortcut.TargetPath = "C:\\Users\Benjie\AppData\Local\Programs\Python\Python36\python.exe"
shortcut.IconLocation = "C:\path_to_.exe,1"
shortcut.Save()
Run Code Online (Sandbox Code Playgroud)

图标路径是文件的路径,带有逗号和文件中图标的编号。如果您创建快捷方式并在其属性中更改其图标,则可以看到文件的图标,然后浏览找到该文​​件。