gpt4 book ai didi

python - OS X : Move window from Python

转载 作者:行者123 更新时间:2023-11-28 21:59:26 24 4
gpt4 key购买 nike

我正在尝试从 OS X 上的 Python 以编程方式在窗口中移动。

我找到了一段 AppleScript here在执行此操作的 Stackoverflow 上,但我想用 Python 或其他“真正的”脚本语言来完成。

这是我的 Python 脚本,它不起作用。我在每个命令下面写下了打印命令的输出。

#!/usr/bin/python

from Foundation import *
from ScriptingBridge import *

app = SBApplication.applicationWithBundleIdentifier_("com.apple.SystemEvents")

finderProc = app.processes().objectWithName_("Finder")

print finderProc
# <SystemEventsProcess @0x74b641f0: SystemEventsProcess "Finder" of application "System Events" (29683)>

finderWin = finderProc.windows()[0]

print finderWin
# <SystemEventsWindow @0x74b670e0: SystemEventsWindow 0 of SystemEventsProcess "Finder" of application "System Events" (29683)>

print finderWin.name()
# Macintosh HD

finderWin.setBounds_([[20,20],[100,100]])
# no visible result

finderWin.setPosition_([20,20])

最后一个命令 (setPosition_) 崩溃并出现以下异常。

Traceback (most recent call last):
File "/Users/mw/Projekte/Python/winlist.py", line 17, in <module>
finderWin.setPosition_([20,20])
AttributeError: 'SystemEventsWindow' object has no attribute 'setPosition_'

如何使 setBounds 命令起作用?

最佳答案

您不必通过系统事件来执行此操作(我怀疑这是否可行)。相反,直接在 Finder 应用程序上执行此操作:

from ScriptingBridge import *

app = SBApplication.applicationWithBundleIdentifier_("com.apple.Finder")
finderWin = app.windows()[0]
finderWin.setBounds_([[100,100],[100,100]])
finderWin.setPosition_([20,20])

您也不需要 Foundation 导入。

关于python - OS X : Move window from Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16598551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com