如果键入“STOP”,请执行此操作


1

是否有可能例如我是否可以编写一个非常简单的重复代码但是如果我只是键入STOP它将结束程序这里是重复的开始代码。

set x to 1

repeat while x is 1
    tell application "Finder"
       activate
       make new Finder window
    end tell
end repeat

因此,例如,如果输入STOP,将x设置为2或其他什么?

谢谢


我不确定为什么会进行近距离投票 - 这对我来说似乎是一个很好的问题。它没有展示很多研究,但代码和意图非常清楚IMO。
bmike

是否应该在使用其他程序时输入“停止”?例如,应用程序A正在运行,键入“停止”并且您的脚本检测到此并退出应用程序A.
Graham Miln

Answers:


2

不 - Applescript不是多线程的,因为你可以同时设置两件事。

要做你想做的事,你需要另一种可以打开窗口的语言,这样用户就可以输入要解释的字符并更改信号变量以退出循环。该语言将处理两个进程之间的多个线程和通信,以便新的X值的设置对于运行该循环的另一个线程是可见的。

如果你更喜欢AppleScript,你可以通过使用文件的存在来保持循环运行,从而做你想做的事情:

if file "semaphore" of application "Finder" exists then
   -- continue processing...
end if

这些记录在https://developer.apple.com/library/mac/documentation/AppleScript/Conceptual/AppleScriptLangGuide/conceptual/ASLR_fundamentals.html

搜索标题为Direct Parameter的部分或使用信号量字符串找到我上面复制的代码段。然后,您可以让用户删除“已选择”的文件 - 可能将其放在桌面上并将其称为“keepRunning”或其他内容,以便在脚本停止运行时将其删除。


1
谢谢你我可能会把它
留在那里
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.