【发布时间】:2021-03-28 01:47:54
【问题描述】:
我正在编写一个 Python 程序(试图坚持使用包含的模块),并且需要仅使用应用程序名称的一部分来获取在 MacOS 平台上打开/活动的应用程序的路径。 (例如,使用“Adobe Acrobat Reader DC”中的“Acrobat”)。在stdout中获取路径输出的正确applescript代码是什么? (如果 MacOS 上有更好的方法,请告诉我)。 (注意:在我的情况下需要是 subprocess.run 而不是 subprocess.Popen)
import subprocess
def get_window_path():
cmd = """
tell application "System Events",
if (get name of every application process) contains "Acrobat" then
return POSIX path of (path to ((get name of every application process) contains "Acrobat"))
end if
end tell
"""
result = subprocess.run(['osascript', '-e', cmd], capture_output=True)
return result.stdout
print(get_window_path())
【问题讨论】:
-
你不能跳过 AppleScript 子进程并通过 PyObjC 桥使用
NSWorkspace吗? -
@red_menace 我会研究这个选项,还没有听说过,如果它足够简单,会很高兴看到它如何工作的解决方案。
标签: python applescript