我试图用python启动一个窗口。我已经尝试了使用os.system,subprocess.call,os.startfile等的NUMEROUS方法,但是我总是收到一条错误,说路径不存在。
我知道路径是正确的,因为我已尝试在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上提出了类似的问题,但没有人帮助过我。所以,在你开始哭泣之前,重复!"请知道我尝试过这些解决方案但没有成功。
答案 0 :(得分:1)
根据此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])