xiang0731
(xiang0731)
2024 年12 月 30 日 10:36
1
已经实现了按下快捷键调整窗口大小
但是因为有多个显示器而且显示器大小不同
想加个判断,判断窗口在哪个显示器,进而调整成不同的大小
前面让gpt生成了一个apple script,但是好像只有在单个显示器情况下才可以用,多个的时候会报错
所以想请教下各位,谢谢
apple script如下,供参考
osascript -e '
tell application "System Events"
-- 获取当前前台应用程序的名称
set frontApp to name of first process whose frontmost is true
tell application "Finder"
-- 获取屏幕分辨率
set screenResolution to bounds of window of desktop
set screenWidth to item 3 of screenResolution as text
set screenHeight to item 4 of screenResolution as text
-- 返回应用名称和分辨率
return frontApp & ": " & screenWidth & "x" & screenHeight
end tell
end tell
'
xiang0731
(xiang0731)
2024 年12 月 30 日 10:42
2
顺带想问下,有没有推荐的apple script的教程
Minja
(Minja)
2024 年12 月 31 日 02:13
3
看你的代码,似乎是想通过当前屏幕分辨率来判断位于哪个显示器?如果想做到这一点,Keyboard Maestro 本身就带了相关 Token。
不建议学习 AppleScript,投入产出不成正比。每一次系统升级,AppleScript 都会偷偷变动一些语法,大概率 Apple 已经不想维护这玩意儿了。LaunchBar 也基本放弃了 AppleScript,live feedback 失效了三年都不修。实在避不开的时候,找现成代码或问 GPT 就行。
Minja
(Minja)
2024 年12 月 31 日 03:07
5
检查一下你那边的 %Screen%Main% 的输出是什么?我截图中的数据是我的,肯定不能直接用。
xiang0731
(xiang0731)
2024 年12 月 31 日 03:21
6
请教下这个怎么检查呢,我试了那个try,也没有反应
xiang0731
(xiang0731)
2024 年12 月 31 日 04:10
8
测试可以,这个显示的是主显示器的分辨率
我想获取到的是 当前软件 所在显示器的分辨率,这个有什么办法可以获取到吗
Minja
(Minja)
2024 年12 月 31 日 04:18
9
用函数。一般来说长度或宽度就足够判断显示器了,如果不行,再考虑长宽组合。
1 个赞
xiang0731
(xiang0731)
2024 年12 月 31 日 04:35
10
非常赞的办法!!
再请教一下,调整窗口大小,有什么办法让它只在当前显示器中调整吗?
Minja
(Minja)
2024 年12 月 31 日 05:11
11
“只在当前显示器中调整”具体指什么?Keyboard Maestro 默认就是只调整当前显示器中的当前窗口,不知道你具体想要什么效果。
如果窗口标题不一样的话可以用 If then else 里的 Front Window condition
xiang0731
(xiang0731)
2024 年12 月 31 日 17:59
13
感谢建议
目前是想做一个通用的,能在不同显示器中及时还原到统一尺寸呢
xiang0731
(xiang0731)
2024 年12 月 31 日 18:01
14
目前用的是这种调整,结果是,无论在哪个显示器中,这个都会在调整大小之后回到主显示器
期望是能直接在当前显示器中调整大小,不会移动回主显示器中
@Minja 我傻了,其实直接在这里选Resize to就可以在原显示器调整了,因为加了Move所以会移动…
1 个赞
Main 变成 mouse 可以变成鼠标所在的显示器
1 个赞