如何通过AppleScript强制应用程序窗口强制重绘?

时间:2019-09-15 14:09:26

标签: macos applescript macos-catalina

我正在尝试为在Catalina上无法正常运行的应用程序(Spark AR Studio)编写帮助程序工作流程。除非发生大小调整之类的事件,感觉像被冻结(尽管完美地响应所有事件,点击等),否则它不会绘制。我已经意识到,不断变化的窗口大小会迫使窗口重新绘制,从而有效地使应用再次可用。

这是我的剧本:

tell application "System Events" to tell process "Spark AR Studio"
    repeat
        set size of window 1 to {1280, 800}
        delay 0.016
        set size of window 1 to {1280, 801}
        delay 0.016
    end repeat
end tell

它最初有效(并且令人惊讶的是,性能和最小开销没有问题),但是

  • 由于我不断更改窗口大小,因此在所有底部锚定的视图上会引起1px的振荡,这会分散注意力。
  • 当单击控件以添加对象时,该应用程序显然会创建另一个窗口,这是使用该应用程序时极为常见的流程,并且该窗口是无边框/无边框且不可调整大小的。当显示该窗口时,我的调整大小技巧(即使我尝试以此方式调整两个窗口的大小)也无效。

使用AppleScript,有什么方法可以重绘所有窗口?

我正在寻找类似force all windows to redraw这样的东西:

tell application "System Events" to tell process "Spark AR Studio"
    repeat
        force all windows to redraw
        delay 0.016
        force all windows to redraw
        delay 0.016
    end repeat
end tell

0 个答案:

没有答案