【问题标题】:Adding a progress bar to a dialog for a "do shell script" in AppleScript在 AppleScript 中为“执行 shell 脚本”的对话框添加进度条
【发布时间】:2015-02-15 11:55:22
【问题描述】:

我正在开发一个用 AppleScript 编写的应用程序,它将 St. Bernard 重定向 LaunchDaemon 移动到当前用户的目录,以便用户可以访问家中的任何网站,但让他们在返回之前将其放回原处学校。这样做的原因是,在学校,iPrism 会阻止学校不希望您访问的任何网站,但是当学生在家时,St. Bernard LaunchDaemon 会阻止相同的网站,我认为没有必要这样做。

无论如何,我想在对话框中添加一个进度条,以显示删除应用程序的 shell 脚本的输入。有人知道怎么做吗?

(我也想在display dialog "Removing..." buttons "" 上没有任何按钮,而是只有进度条。这可能吗?)

代码如下:

display alert "You may have to restart your computer after using this tool!" buttons {"Ok"} default button 1

set question to display dialog "RMR (Remove My Redirect)

Are you unable to go to a website at home because of that annoying St. Bernard Redirect?

If the answer is Yes, then RMR is your solution! Simply Choose Remove to remove it, and Replace to put it back." buttons {"Remove", "Replace", "Erase Evidence"} default button 3
set answer to button returned of question

if answer is equal to "Remove" then do shell script "mv /Library/LaunchDaemons/com.stbernard.rfcd.plist ~/"

if answer is equal to "Replace" then do shell script "mv ~/com.stbernard.rfcd.plist /Library/LaunchDaemons/"

if answer is equal to "Erase Evidence" then set question to display dialog "Are you sure? RMR will be deleted forever." buttons {"Yes", "No"} default button 2
set answer to button returned of question

if answer is equal to "No" then do shell script "echo"

-- Progress bar goes on the below dialog

if answer is equal to "Yes" then ¬
    tell application "Terminal"
        display dialog "Removing..." buttons ""
        do shell script "srm -rf ~/Downloads/RMR.app; history -c; killall Terminal"
        delay 20
        quit
    end tell

提前感谢任何可以提供帮助的人!

【问题讨论】:

标签: terminal dialog applescript progress-bar progress


【解决方案1】:

MacOS X 10.10 或更高版本中的 Applescript 具有用于进度条的内置术语。对于小程序,它在对话框中运行进度指示器。在脚本编辑器中,它显示在状态栏中。调整这个术语:

set n to 10

set progress total steps to n
set progress description to "Script Progress"
set progress additional description to "This should be helpful"

repeat with i from 1 to n
    delay 1
    set progress completed steps to i
end repeat

【讨论】:

  • 您需要MacOS X 10.10 或更高版本才能使用 AppleScript 中的内置进度条。我希望早点添加该功能,因为我的办公室尚未完成 MacOS X 10.10 的推出。
猜你喜欢
  • 2010-09-19
  • 2017-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-13
  • 1970-01-01
  • 2013-07-07
相关资源
最近更新 更多