我是Java编程的新手。我写了这个程序来粘贴“你好世界!”每一秒。程序运行正常,文本粘贴在许多窗口程序中,如记事本、Microsoft、浏览器和每个程序的文本框或输入框。但在某些程序中,我的代码不起作用,例如或Garena。
现在我的问题是:一些程序可以出于安全原因拒绝JAVA代码吗?如果是真的,那么如何在其中启用Java呢?
请注意,我使用NetBeans IDE对jar文件进行编程和编译。我的代码如下:
package com.javacodegeeks.snippets.desktop;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;
public class SimulateMouseMoveAndKeyPress {
public static void main(String[] args) throws InterruptedException {
try {
// Create counter
int counter = 0;
while(true) {
Thread.sleep(1000);
String myString = "[" + counter + "] Hello world!";
StringSelection stringSelection = new StringSelection (myString);
Clipboard clpbrd = Toolkit.getDefaultToolkit ().getSystemClipboard ();
clpbrd.setContents (stringSelection, null);
Robot r = new Robot();
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_V);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_V);
r.keyPress(KeyEvent.VK_ENTER);
r.keyRelease(KeyEvent.VK_ENTER);
counter = (counter)+1;
}
} catch (AWTException e) {
System.out.println("Low level input control is not allowed " + e.getMessage());
}
}
}请帮帮我。谢谢大家。
发布于 2015-06-28 14:58:58
Can some programs denies JAVA codes for security reasons?非Java程序不知道任何Java程序.他们简单地对Ctrl热键做出反应(通过操作系统)并粘贴他们在系统剪贴板中找到的东西。或者不是,你应该不会看到你的"Hello“字符串。
可能在你看不到粘贴的数据的地方,它们也不会对手动的Ctrl做出反应。
机器人博士说:
使用类生成输入事件不同于将事件发送到AWT事件队列或AWT组件,因为事件是在平台的本机输入队列中生成的。例如,Robot.mouseMove实际上将移动鼠标光标,而不仅仅是生成鼠标移动事件。
生成的事件是否进入系统事件队列(应该抛出异常)。似乎他们是为某些人工作的,而另一些人则不是。但是AFAIK,也就是,并不是因为使用来创建事件。
https://stackoverflow.com/questions/31101032
复制相似问题