【问题标题】:AppleScript for unlock screen dialog用于解锁屏幕对话框的 AppleScript
【发布时间】:2009-07-21 22:39:32
【问题描述】:

我编写了一个 Applescript,将各种 IM 客户端设置为关闭,关闭 iTunes,然后启动我的屏幕保护程序。

tell application "Adium"
    go away
end tell

tell application "Skype"
    send command "SET USERSTATUS AWAY" script name "StatusSetter"
end tell

tell application "iTunes"
    if player state is playing then
        pause
    end if
end tell

activate application "ScreenSaverEngine"

这是一个受密码保护的屏幕保护程序,我正试图(一旦屏幕保护程序消失)做相反的事情。显然,每个应用程序的“告诉”操作都不是问题,但是一旦屏幕被解锁,我似乎无法找到如何执行这些操作。我确实认为这与 LoginItem 相同,但事实并非如此。

任何帮助表示赞赏!

【问题讨论】:

    标签: macos applescript


    【解决方案1】:

    非常酷的想法——我从没想过这样做。看起来您可能想要使用ScriptSaver。这将允许您在激活和停用屏幕保护程序时运行某些脚本。通过这种方式,您将获得更好的覆盖率,并且无需担心您的脚本会在您的计算机处于开启状态时运行。

    【讨论】:

    • 啊哈。比我更好的答案。
    • 我对此进行了研究,但其中有一个小错误(从开发人员所知道的 cmets 的外观来看)会导致双屏出现问题。并不是说它只显示在一个屏幕上——我正在运行 Flurry,它似乎在我的(一个)屏幕上缩放和模糊得很厉害,这真的很难看!
    【解决方案2】:

    我能想到的一种方法是

    display dialog "Are you back yet?"
    

    之后

    activate application "ScreenSaverEngine"
    

    然后,在那之后,恢复一切。这将在屏幕保护程序后面显示一个对话框,允许您单击一个按钮来恢复所有应用程序。

    【讨论】:

    • 很好,谢谢!我想我至少会将此用作临时解决方案,但我希望有一种方法能够在我重新激活屏幕后自动执行此操作。
    【解决方案3】:

    好的。经过一番研究,在我看来,这可能是错误的,ScreenSaverEngine 仅在屏幕保护程序运行时运行。如果这是真的,那么以下代码更接近您要查找的内容:

    set screenSaverRunning to false
    
    repeat while not screenSaverRunning
        try
            set t to (do shell script "ps awx | grep ScreenSaverEngine | grep -v grep")
            set screenSaverRunning to true
        on error errStr number errNum
    
        end try
        delay 1
    end repeat
    
    
    --Screen Saver is now running...
    
    
    repeat while screenSaverRunning
        try
            set t to (do shell script "ps awx | grep ScreenSaverEngine | grep -v grep")
        on error errStr number errNum
            set screenSaverRunning to false
        end try
        delay 1
    end repeat
    
    --Screen Saver Stopped / Now at password prompt
    

    我看到的唯一问题是,出现密码框时 ScreenSaverEngine 停止运行...您可以通过不断检查来解决此问题,或者添加足够长的延迟以便您输入密码...也不是一个很好的解决方案...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多