当我使用 sikuli 输入密码时如何防止 window 切换

How to prevent window switching when I am entering password using sikuli

我正在编写一个 sikuli 脚本来启动 putty 并登录到远程 UNIX 服务器。当客户端询问时,Sikuli 会自动输入登录名和密码。现在有一种可能性是,当 sikuli 输入密码时,有人可能会触发 window 切换,使用 Alt + Tab 或单击鼠标打开记事本(或任何其他编辑器)并窃取密码。由于我们不能向用户透露密码,我们使用这个脚本来执行 SSO。 我们尝试了逐字符输入密码,每一步触发window检查等各种方案,但仍然存在密码泄露的可能。 有什么方法可以锁定 putty window 或禁用应用程序切换? 有没有其他工具可以做到这一点?或者有什么方法可以使用 JAVA + Sikuli(使用一些 API 或使用 Sikuli 和 Java 的其他工具)来处理相同的问题。

我用 Putty 做过类似的东西,输入密码也有问题。

选项 1

一种选择是将密码复制到剪贴板,然后在 Putty 屏幕内按右键单击(因为右键单击 putty 屏幕粘贴保存在剪贴板中的文本)。据我所知,无法通过 sikuli 脚本在剪贴板上写入,但可以使用 Java 来完成。一个你设置了剪贴板,你可以用这个命令访问剪贴板:

putty = App.open("path/to/putty.exe")
putty.focus()
password = Env.getClipboard()
rightClick("putty_window.png")

应用 class 的文档是 Here

Here 是通过 java:

设置剪贴板的示例
// Libraries to set clipboard
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Clipboard;

public class tester{

 public static void main(String[] args){

     // from string to clipboard
    StringSelection selection = new StringSelection("hi");
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    clipboard.setContents(selection, selection);
 }
}

选项 2

使用 link to auto login with putty. After that, convert your bat to exe with Bat to exe converter, the second answer on this link 中的内容创建一个 bat 文件。