有了pywin32是不是就能在Windows上为所欲为了?
是的。
- # -*- coding: cp936 -*- #
- import os
- import pythoncom
- from win32com.shell import shell
- from win32com.shell import shellcon
- def set_shortcut(filename,lnkname,iconname):#如无需特别设置图标,则可去掉iconname参数
- shortcut = pythoncom.CoCreateInstance(
- shell.CLSID_ShellLink, None,
- pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IShellLink)
- shortcut.SetPath(filename)
- shortcut.SetIconLocation(iconname,0)#可有可无,没有就默认使用文件本身的图标
- if os.path.splitext(lnkname)[-1] != '.lnk':
- lnkname += ".lnk"
- shortcut.QueryInterface(pythoncom.IID_IPersistFile).Save(lnkname,0)
- if __name__ == "__main__":
- #获取"启动"文件夹路径,关键是最后的参数CSIDL_STARTUP,这些参数可以在微软的官方文档中找到
- startup_path = shell.SHGetPathFromIDList(shell.SHGetSpecialFolderLocation(0,shellcon.CSIDL_STARTUP))
- #获取"桌面"文件夹路径,将最后的参数换成CSIDL_DESKTOP即可
- desktop_path = shell.SHGetPathFromIDList(shell.SHGetSpecialFolderLocation(0,shellcon.CSIDL_DESKTOP))
- file_name=""#要创建快捷方式的文件的完整路径
- icon_name=""#图标文件的完整路径(非必须)
- lnk_name1= startup_path+"\\我的桌面快捷方式.lnk"#将要在此路径创建快捷方式
- lnk_name2= startup_path+"\\我的启动组快捷方式.lnk"
- set_shortcut(file_name,lnk_name1,icon_name)
- set_shortcut(file_name,lnk_name2,icon_name)
来源: http://www.phpxs.com/code/1004930/