启动代码前需要提前引入相关库
pip install pywin32 -i https://pypi.tuna.tsinghua.edu.cn/simple
import os
import subprocess
import win32com.client
def find_program(app_name, search_paths):
shell = win32com.client.Dispatch("WScript.Shell")
target_path = None
# 遍历所有指定的搜索路径
for path in search_paths:
# 递归遍历文件夹
for root, dirs, files in os.walk(path):
for filename in files:
# 过滤掉卸载程序
if filename.endswith(".lnk") and app_name.lower() in filename.lower() and "卸载" not in filename:
# 获取完整路径
lnk_file = os.path.join(root, filename)
# 获取快捷方式的目标路径
shortcut = shell.CreateShortcut(lnk_file)
target_path = shortcut.TargetPath
return target_path
return target_path
# 使用方法
# 定义搜索路径(开始菜单、桌面、程序目录)
search_paths = [
# 当前用户开始菜单
os.path.join(os.environ['APPDATA'], 'Microsoft', 'Windows', 'Start Menu', 'Programs'),
# 所有用户开始菜单
os.path.join(os.environ['PROGRAMDATA'], 'Microsoft', 'Windows', 'Start Menu', 'Programs'),
# 桌面
os.path.join(os.environ['USERPROFILE'], 'Desktop'),
]
# 查找微信程序
target = find_program("微信", search_paths) # 使用中文名称匹配
if target:
subprocess.Popen([target]) # 启动程序
else:
print("未找到程序!")