import re import os import configparser import pythoncom import sys from win32com.shell import shell from win32com.shell import shellcon
import win32com.client objShell = win32com.client.Dispatch("WScript.Shell") allUserProgramsMenu = objShell.SpecialFolders("AllUsersPrograms")
if len(sys.argv) < 2: print("请输入CloudCache路径") sys.exit(1)
def buildShortCut(lnkFile, name, appdir, para, workdir, showcmd): print(lnkFile,name,appdir,para,workdir,showcmd) shortcut = pythoncom.CoCreateInstance(shell.CLSID_ShellLink, None, pythoncom.CLSCTX_INPROC_SERVER, shell.IID_IShellLink) shortcut.SetPath(appdir) shortcut.SetDescription(name) shortcut.SetWorkingDirectory(workdir) shortcut.SetArguments(para) shortcut.QueryInterface(pythoncom.IID_IPersistFile).Save(lnkFile,0)
find_file=re.compile(r"init.ini") find_path=sys.argv[1] find_walk=os.walk(find_path)
shortCutDir = allUserProgramsMenu
iniFiles = [] for path,dirs,files in find_walk: for file in files: if find_file.search(file): iniFilePath = os.path.join(path, file) print(iniFilePath) iniFileObj = open(iniFilePath) iniContent = "rn".join(iniFileObj.readlines()[1:-1]) config = configparser.ConfigParser() config.read_string(iniContent) print(config.sections())
shortCutSubdir = "" for sectionName in config.sections(): if sectionName == "Shortcut0": shortCutSubdir = os.path.join(shortCutDir, config[sectionName]["ShortcutName"])
if sectionName.find("Shortcut") == 0: section = config[sectionName] packageName = config["Common"]["PacketName"]
if not os.path.exists(shortCutSubdir): os.mkdir(shortCutSubdir)
buildShortCut(os.path.join(shortCutSubdir, section["ShortcutName"]+ ".lnk"), section["ShortCutName"], section["AppDir"], section["Param"], section["WorkingDirectory"], 1)
|