Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos AppleScript:关于未定义变量的奇怪错误_Macos_Applescript - Fatal编程技术网

Macos AppleScript:关于未定义变量的奇怪错误

Macos AppleScript:关于未定义变量的奇怪错误,macos,applescript,Macos,Applescript,有时,我会遇到这样的错误: /mac/get\u foregroundapp\u info.scpt:254:265:执行错误:未定义变量窗口名称。(-2753) 这很奇怪,因为我看不出变量是如何定义的。代码如下: global frontApp, frontAppName, idleTime, window_name tell application "System Events" set frontApp to first application process whose fro

有时,我会遇到这样的错误:

/mac/get\u foregroundapp\u info.scpt:254:265:执行错误:未定义变量窗口名称。(-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
如果窗口名…,则错误出现在行

但这种情况很少出现,可能发生在大约2-5%的病例中

当我按下命令键并将鼠标停留在Chrome中的某个链接上时,它似乎更经常/总是出现(?)。现在不知道这是完全随机的行为还是以任何方式相关


编辑:当我用预览打开图像时,它似乎也总是出现。奇怪的是,如果我打开带有预览的PDF文件,它似乎可以工作


正如Chuck指出的,可以用另一个
try
块捕获这个“未定义变量”错误

但我的主要问题是:为什么变量没有定义?这是什么意思?因为在我看来,它必须在那个地方定义



(顺便说一句,这段关于获取窗口标题的代码有几个缺点。这里介绍了其中一个。由于这个原因,它也不总是起作用。请参阅另一个似乎总是起作用的解决方案,而且没有这些奇怪的错误。)

听起来好像
try
块中出现了错误。尝试将错误处理程序放入其中或删除Try块,因为现在它只会使变量无法定义,然后您将在下一行看到错误。

虽然我不知道为什么会出现错误,但您尝试过类似的方法吗

try
    set window_name to name of front window of frontApp
on error
    set window_name to ""
end try
或者更符合你已经拥有的

set window_name to ""
set window_name to name of front window of frontApp
try
    if window_name = missing value then set window_name to ""
on error
    set window_name to ""
end try

我找到了解决方案,这说明我的“错误-2753”是一个假错误。因为我的解决方案是“查找并正确添加”块

  tell application "PrettyApp"
  end tell --PrettyApp 

如果没有
try
块,同样的问题也会发生。您如何执行此代码?我想不出任何轻量级的方法,在测试代码时,不让AppleScript Editor成为最前端的应用程序。@Uriah:我把它放在某个文件中,然后在终端上,我执行了以下命令:
,而true;做睡眠1;osascript-ssmyscript;完成
第二个实际工作,因为它似乎捕捉到了“未定义变量”错误。但我的主要问题是:为什么变量没有定义?这是什么意思?因为在我看来,它必须在那个地方定义。我不明白为什么会出现错误。我将不得不调试完整的脚本来尝试找出答案。如果您有脚本调试器,您可以尝试使用它。如果你有兴趣,它有一个演示下载。