使用AppleScript粘贴密码

时间:2011-05-22 15:05:57

标签: applescript paste

嘿伙计们。 在Mac OSX 10.6上工作, 我的“问题”是我希望在我的用户帐户上使用安全密码,但是不管是否需要管理员权限,就必须将其粘贴到其中。

我使用自动驾驶仪,并认为这是输入它的最佳方式,所以我可以 1使用直接Applecript输入, 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

因为密码对话框似乎不接受命令+ v paste方法。

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

由于

2 个答案:

答案 0 :(得分:10)

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

尝试以下方法:

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

    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)

tell app "System Events" to keystroke "securepassword"应该有效,至少密码是字母数字。 (并且您在按住修改键时不会调用脚本。)