强制 OSX 文本字段接受复制粘贴

强制 OSX 文本字段接受复制粘贴

简洁版本:有没有办法强制 OSX 中的文本字段接受粘贴字符串,尽管开发人员(Apple)将其设置为不接受复制粘贴?

很长的故事:

平台:OS X 10.8.2 (Mountain Lion)

刚刚连接了一个新的外部驱动器,将其设置为加密(HFS+ 加密分区)。它按预期工作。

我遇到的问题是,我设置了一个很长的随机密码。和许多其他人一样,我把这个密码保存在 KeePassX 中。一切都很顺利……除了 Apple 不允许我简单地将密码粘贴到连接驱动器后显示的“输入密码”对话框中!

每次检测到驱动器时​​,都要将一个窗口中的长随机字符串重写到第二个窗口中,这非常烦人。有没有办法强制输入字段接受粘贴的密码?

要解锁磁盘“***”,请输入密码。

一种解决方案是将密码存储在 OS X KeyChain 中,但是... 似乎存在一个错误。即使正确安装卷后,“输入密码”窗口也不会消失。我输入密码,单击“解锁”,然后控件变灰。几秒钟后,我看到驱动器出现在 Finder 中,但“输入对话框”窗口像输入了错误密码一样摇晃 - 然后恢复到原始状态。此外,尽管选中了将密码存储在 KeyChain 中的选项,但密码并未写入那里(我想这两者可能相关)。因此,选中“存储在钥匙串中”并不能解决我的问题...

答案1

在这种情况下实际上并不是更方便,但你可以在 AppleScript 编辑器中运行它:

tell application "System Events" to tell process "SecurityAgent"
    set value of text field 1 of window 1 to the clipboard
    click button 1 of window 1
end tell

当我单击“在钥匙串中记住”复选框时,密码将与卷的名称一起保存在登录钥匙串中,随后无需密码即可安装该卷。

答案2

我写非常小的AppleScript应用程序它允许你在不允许的地方粘贴密码,通过欺骗系统认为你正在键盘上打字。缺点:它会占用 Dock 中的空间。

答案3

另一个仍然有效的方法是将文本拖放到提示中。从密码存储中复制,将其粘贴到 TextEdit 或类似的应用程序中,这些应用程序允许您选择文本并以 OS X 原生方式移动它。在 TextEdit 中选择文本,然后单击文本并拖动。将选定的文本从 TextEdit 拖到密码输入字段。然后密码就放到位了。

答案4

我尝试了一种我认为可以绕过剪切和粘贴禁令的方法,那就是尝试使用ctrlKctrlY(Kill and Yank),但这也不起作用。

这当然又回到了拥有一个又长又难的加密密钥的理由加强安全但在内存中随时有该密钥的多个副本任何非特权进程都可以访问。然而,App Store 上有几十个第三方密码管理器,其中很多是免费的,可能满足您的需求。

相关内容