【发布时间】:2013-03-05 18:03:45
【问题描述】:
有时,我会收到此错误:
./mac/get_foregroundapp_info.scpt:254:265: execution error: The variable window_name is not defined. (-2753)
这很奇怪,因为我看不到变量是如何定义的。这是代码:
global frontApp, frontAppName, idleTime, window_name
tell application "System Events"
set frontApp to first application process whose frontmost is true
end tell
set window_name to ""
try
set window_name to name of front window of frontApp
end try
if window_name = missing value then
set window_name to ""
end if
错误出现在if window_name ...行中。
但它很少出现,可能在大约 2-5% 的情况下。
当我按住 Command 键并将鼠标悬停在 Chrome 中的某个链接上时,它似乎更频繁/总是出现 (?)。不知道这是否是现在完全随机的行为或任何相关的行为。
编辑:当我使用预览打开图像时,它似乎也总是出现。奇怪的是,如果我用预览打开 PDF,它似乎可以工作。
正如 Chuck 所指出的,可以使用另一个 try 块来捕获此“未定义变量”错误。
但实际上我的主要问题是:为什么变量未定义?这意味着什么?因为在我看来,它必须在那个地方定义。
(顺便说一句,这段关于获取窗口标题的代码有几个缺点。这里描述了其中一个。因此它也并不总是有效。请参阅另一个解决方案here,它似乎总是有效,也没有如此奇怪的错误。)
【问题讨论】:
-
你是如何执行这段代码的?在测试代码时,我想不出任何不让 AppleScript Editor 成为最前面的应用程序的轻量级方法。
-
@Uriah:我把它放在某个文件中,然后在终端上,我执行了这个:
while true; do sleep 1; osascript -ss myscript; done
标签: macos applescript