我正在编写一个sikuli脚本来启动putty并登录到远程UNIX服务器。当客户端询问时,Sikuli会自动输入登录名和密码。现在有可能,当sikuli输入密码时,有人可能会触发窗口切换,使用Alt + Tab或鼠标单击打开记事本(或任何其他编辑器)并窃取密码。由于我们无法向用户透露密码,因此我们使用此脚本执行SSO。 我们尝试了各种选项,例如逐字符输入密码和在每一步触发窗口检查,但仍有可能出现密码泄露。 有什么方法可以锁定putty窗口或禁用app切换? 还有其他工具可以实现吗?或者我们有什么方法可以使用JAVA + Sikuli处理它(使用一些API或使用Sikuli和Java的其他工具)。
答案 0 :(得分:0)
我曾经使用Putty做过类似的事情,也输入了密码。
选项1
一种选择是将密码复制到剪贴板中,然后在Putty屏幕内单击鼠标右键(因为右键单击putty屏幕粘贴保存在剪贴板中的文本)。据我所知,没有办法通过sikuli脚本在剪贴板上写,但你可以用Java来做。您已设置剪贴板,可以使用以下命令访问剪贴板:
putty = App.open("path/to/putty.exe")
putty.focus()
password = Env.getClipboard()
rightClick("putty_window.png")
App类的文档为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
创建一个bat文件,其中包含此link的内容,并使用putty自动登录。之后,使用 Bat to exe转换器将你的球棒转换为exe,这是link的第二个答案。