无法启动Windows快捷方式

时间:2017-01-31 09:22:41

标签: python windows

我试图用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上提出了类似的问题,但没有人帮助过我。所以,在你开始哭泣之前,重复!"请知道我尝试过这些解决方案但没有成功。

1 个答案:

答案 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])