当我使用 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 文件。
我正在编写一个 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 文件。