java - Java机器人不要输入@
问题描述
嘿,我想为电子邮件和 CO 创建自己的自动登录,作为练习,因为我仍然是初学者。我为此使用了 Java Robot,因为我知道它没有所有特殊字符,所以我想在机器人获取某些字符之前捕获它们。我也这样做(我认为)。但我总是收到“无效的密钥代码”错误。有人有建议吗 ?我使用德语键盘
import java.io.IOException;
import java.awt.*;
import java.awt.event.*;
public class Login {
public static void main (String [] args) {
/* args 0 is for the website
args 1 is for the email adresse
args 2 is for the password
*/
try {
// Process p1= Runtime.getRuntime().exec("\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\"");
Process p1= Runtime.getRuntime().exec("\"C:\\ProgramFiles \\Notepad++\\notepad++.exe\""); // i use notepad here for testing
Thread.sleep(100);
write(args[0]);
Thread.sleep(300);
write(args[1]);
Thread.sleep(300);
write(args[2]);
// p1.destroy();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void write(String s)
{
try
{
Robot r = new Robot();
int i = 0;
char[] buchstaben = s.toCharArray();
String AT = "@";
while (i<s.length())
{
System.out.println("KeyEvent ist: "+ buchstaben[i]);
if((String.valueOf(buchstaben[i]).contains(AT))==true)
{
r.keyPress(KeyEvent.VK_AT);
// r.keyPress(KeyEvent.VK_ALT_GRAPH);
// r.keyPress('Q');
r.delay(250);
r.keyRelease(KeyEvent.VK_AT);
// r.keyRelease(KeyEvent.VK_ALT_GRAPH);
// r.keyRelease(KeyEvent.VK_Q);
i++;
}
if(Character.isUpperCase(buchstaben[i]))
{
r.keyPress(KeyEvent.VK_SHIFT);
}
synchronized(r)
{
r.keyPress(Character.toUpperCase(buchstaben[i]));
r.delay(250);
r.keyRelease(Character.toUpperCase(buchstaben[i]));
}
if(Character.isUpperCase(buchstaben[i]))
{
r.keyRelease(KeyEvent.VK_SHIFT);
}
i++;
}
r.keyPress(KeyEvent.VK_ENTER);
r.delay(250);
r.keyRelease(KeyEvent.VK_ENTER);
}
catch(AWTException e)
{
System.err.println(e);
}
}
}
线程“主”java.lang.IllegalArgumentException 中的异常:无效的键码
at sun.awt.windows.WRobotPeer.keyPress(Native Method)
at java.awt.Robot.keyPress(Robot.java:354)
at Login.write(Login.java:53)
at Login.main(Login.java:21)
解决方案
推荐阅读
- javascript - 获取 API 数据以存储在自己的服务器上
- angular-material - Angular 7 无法将 id 属性设置为 Angular 材质 mat-tab
- powershell - 删除包含内容的文件夹 排除包含内容的文件夹
- python - 将图像哈希转换为内置 int 的 python
- angular - 错误:“未捕获(承诺中):错误:模块'LoginPageModule'导入的意外值'AlertController'。请添加@NgModule注释
- android - MFP8 中的直接更新甚至无法部署最新的 Web 资源
- sql - SQL Server: Using cursor to loop and insert incremental values
- c++ - 如何用双打专门化模板类?
- git - Resetting a new file in staging area to working directory in Git
- javascript - 如何在文本中捕获 alexa 的数据输出?