我正在尝试使用 python 启动一个窗口。我已经尝试过许多使用 os.system、subprocess.call、os.startfile 等的方法,但我总是收到一条错误消息,指出该路径不存在。
我知道路径是正确的,因为我已经尝试在 CMD.EXE 中运行以下命令:
start D:\johan\programmering\Scripts\shortcuts\HWMonitor.lnk
以下是我尝试过但没有成功的一些方法:
os.startfile(r"D:\johan\programmering\Scripts\shortcuts\HWMonitor.lnk")
os.startfile("D:\\johan\\programmering\\Scripts\\shortcuts\\HWMonitor.lnk")
subprocess.call("D:\\johan\\programmering\\Scripts\\shortcuts\\HWMonitor.lnk")
subprocess.call(r"D:\johan\programmering\Scripts\shortcuts\HWMonitor.lnk")
subprocess.Popen(r"D:\johan\programmering\Scripts\shortcuts\HWMonitor.lnk")
subprocess.Popen(r"D:\johan\programmering\Scripts\shortcuts\HWMonitor.lnk", shell=True)
os.system(r"start D:\johan\programmering\Scripts\shortcuts\HWMonitor.lnk")
p= subprocess.Popen(r"start D:\johan\programmering\Scripts\shortcuts\HWMonitor.lnk", shell=True)
p.wait()
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut(r"D:\johan\programmering\Scripts\shortcuts\HWMonitor.lnk")
subprocess.call(shortcut.Targetpath)
免责声明 我知道在 SO 上也有类似的问题,但没有一个对我有帮助。所以在你开始喊“重复!”之前请知道我已经尝试了这些解决方案但没有成功。
最佳答案
根据这个answer ,你可以解析你的链接路径,然后调用解析的路径
import sys
import win32com.client,win32api
shell = win32com.client.Dispatch("WScript.Shell")
shortcut = shell.CreateShortCut(r"D:\johan\programmering\Scripts\shortcuts\HWMonitor.lnk")
long_path = shortcut.Targetpath
但是 long_path
可能是一个奇怪的 Windows 路径,里面有很多垃圾,所以如果
subprocess.call([long_path])
不起作用,您可以将长路径解析为短路径(8.3 名称):
short_path=win32api.GetShortPathName(long_path)
现在做:
subprocess.call([short_path])
关于python - 无法启动 Windows 快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41953772/