【问题标题】:Paste password with AppleScript使用 AppleScript 粘贴密码
【发布时间】:2011-05-22 15:05:57
【问题描述】:

大家好。 在 Mac OSX 10.6 上工作, 我的“问题”是我想在我的用户帐户上设置一个安全密码,但讨厌在进程需要管理员权限时必须粘贴它。

我使用 Autopilot,并认为这是输入此信息的最佳方式,所以我可以 1 使用直接的applescript输入, 2 使用带有“osascript ...”的shell脚本 3 启动一个applescript编译的应用程序 4 在 Autopilot 中使用文本扩展工具(在这种情况下似乎不起作用)

我目前的脚本是:

    set the clipboard to "FooBar"
    set resultAnything to the clipboard as text

当我在脚本编辑器中执行时,我的结果是“FooBar” 但我无法让它在其他任何地方工作。

我不能用

    set the clipboard to "FooBar"
    tell application "System Events"
    keystroke "v" using command down
    end tell

因为密码对话框好像不接受command+v粘贴方式。

有什么帮助吗? 顺便说一句,我在发布这个问题之前确实搜索了网络和 stackoverflow,所以如果我忽略了已经发布的任何内容,请原谅我。

谢谢

【问题讨论】:

    标签: applescript paste


    【解决方案1】:

    在安全方面,最好将您的密码存储在登录钥匙串中,并在需要时从那里检索它。 (这样你必须登录才能使用密码。如果你只是将密码保存在一个 applescript 中,任何有权访问 applescript 文件的人都可以访问它。)

    尝试以下方法:

    1. 打开钥匙串访问 (/Applications/Utilities)
    2. 在选择登录钥匙串时按窗口底部的“+”按钮
    3. 输入钥匙串项目名称、帐户名称和您的服务器密码。您将再次需要钥匙串项目名称。
    4. 制作一个包含以下代码的新 Applescript,将 myKeyname 替换为 Keychain 项目名称
    5. 首次运行脚本时选择“始终允许”和“允许”。这将允许 Keychain Access 在您登录时自动获取密码。

    代码:

    set keyName to "myKeyname" -- replace myKeyname with the Keychain Item Name from step 3
    tell application "Keychain Scripting"
        tell keychain "login.keychain"
            set myPass to password of (some key whose name is keyName)
        end tell
    end tell
    tell application "System Events"
        keystroke myPass
    end tell
    

    学分:

    【讨论】:

    • +1 用于展示如何使用钥匙串。 (是的,是 3 年前)
    【解决方案2】:

    tell app "System Events" to keystroke "securepassword" 应该可以工作,至少如果密码是字母数字的话。 (而且您在按住修饰键时不会调用脚本。)

    【讨论】:

    • 太棒了!很简单。谢谢。
    • 一种更适合 Stack Exchange 的表示感谢的方式是接受(或赞成)一个答案。
    猜你喜欢
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多