Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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
在applescript中将应用程序设置为最前面_Applescript - Fatal编程技术网

在applescript中将应用程序设置为最前面

在applescript中将应用程序设置为最前面,applescript,Applescript,我试图找出最前面的应用程序x是什么,运行一个脚本,然后使用applescript将x设置为最前面的应用程序 tell application "System Events" set frontApp to displayed name of first process whose frontmost is true set apptemp to frontApp end tell [此处代码] tell application "System Events" set frontmost

我试图找出最前面的应用程序x是什么,运行一个脚本,然后使用applescript将x设置为最前面的应用程序

    tell application "System Events"
set frontApp to displayed name of first process whose frontmost is true
set apptemp to frontApp
end tell
[此处代码]

tell application "System Events"
set frontmost of process whose name is apptemp to true
end tell
虽然这段代码没有返回任何bug,但它不起作用。我也试过这个代码

tell application "System Events"
set apptemp to application "Google Chrome"
set frontmost of process "Google Chrome" to true
end tell
但是,尽管没有bug,它也不会工作


另外,有人请告诉管理员,使其更容易显示代码。我在这个网站上显示代码是最困难的。我必须为每行代码缩进四个空格,这太疯狂了。

处理这一问题的一个可靠方法是使用最前端应用程序的路径,如下所示:

保存最前端活动的应用程序, 作为指向应用程序包的绝对、HFS样式的路径字符串。 将最前面的应用程序路径设置为文本 激活并使用其他应用程序。 激活应用程序提醒 延迟2 使以前最前端的活动应用程序再次最前端。 激活应用程序路径 使用应用程序的特定路径可确保重新激活完全相同的应用程序,而不考虑重复的应用程序和进程名称不同的应用程序


注意:直接保存和还原对象引用frontmost应用程序很有诱惑力,但这实际上不起作用:令人费解的是,这样保存的引用与当前运行代码的应用程序被视为相同的引用。

处理此问题的可靠方法是使用指向frontmost应用程序的路径,如下所示:

保存最前端活动的应用程序, 作为指向应用程序包的绝对、HFS样式的路径字符串。 将最前面的应用程序路径设置为文本 激活并使用其他应用程序。 激活应用程序提醒 延迟2 使以前最前端的活动应用程序再次最前端。 激活应用程序路径 使用应用程序的特定路径可确保重新激活完全相同的应用程序,而不考虑重复的应用程序和进程名称不同的应用程序


注意:想要直接保存和恢复对象引用最前端的应用程序是很诱人的,但实际上这并不起作用:令人费解的是,这样保存的引用与当前运行代码的应用程序一样对待。

比其他两种方法更好的是使用bundle标识符,它是唯一的密钥

tell application "System Events"
    set frontAppID to bundle identifier of first process whose frontmost is true
end tell

-- Sample code... can be anything else
activate application "Finder"
delay 3
-- End of sample code

activate application id frontAppID

比其他两种方法更好的是使用bundle标识符,它是唯一的密钥

tell application "System Events"
    set frontAppID to bundle identifier of first process whose frontmost is true
end tell

-- Sample code... can be anything else
activate application "Finder"
delay 3
-- End of sample code

activate application id frontAppID

关于帮助中的代码缩进:您也可以选择文本并按CTRL+K将缩进切换为代码。他们需要在网页上更清楚地说明这一点。请允许我给您给新手的标准建议:如果答案解决了您的问题,请单击大复选标记接受它✓ 在它旁边,也可以选择向上投票,投票需要15或更多的信誉点。如果你发现其他答案有帮助,就投票给他们。接受它,你将获得2点声誉积分,并且向上投票有助于未来的读者。请看。如果您的问题尚未完全回答,请提供反馈或。关于帮助中的代码缩进:您也可以选择文本并按CTRL+K将缩进切换为代码。他们需要在网页上更清楚地说明这一点。请允许我向新手提供标准建议:如果答案解决了您的问题,请通过单击大复选标记接受它✓ 在它旁边,也可以选择向上投票,投票需要15或更多的信誉点。如果你发现其他答案有帮助,就投票给他们。接受它,你将获得2点声誉积分,并且向上投票有助于未来的读者。请看。如果您的问题尚未完全回答,请提供反馈或。您可以将应用程序路径的id缩短为文本形式的最前面的应用程序,但即使如此,我也不认为这比仅使用路径更好,因为路径也是唯一的。您提到了两种方法-另一种是什么?如何在if子句中使用bundle标识符?类似于如果最前面是com.apple.safari的第一个进程的bundle标识符的frontAppID,那么。。。如果最前端为true的第一个进程的bundle标识符为com.apple.safari,那么……您可以将最前端应用程序的应用程序路径id缩短为文本,但即使如此,我也不认为这比仅使用路径更好,因为路径也是唯一的。您提到了两种方法-另一种是什么?如何在if子句中使用bundle标识符?类似于如果最前面是com.apple.safari的第一个进程的bundle标识符的frontAppID,那么。。。不起作用。如果最前面为true的第一个进程的包标识符为com.apple.safari,则。。。