某些程序中的Java粘贴错误

某些程序中的Java粘贴错误,java,netbeans,copy-paste,Java,Netbeans,Copy Paste,我是Java编程的新手。我写这个程序是为了每秒粘贴“Hello world!”。该程序运行正常,文本粘贴在许多windows程序中,如记事本、Microsoft Word、浏览器和每个程序的文本区域或输入框中。但在某些程序中,我的代码不起作用,例如Windows End Task Manager或Garena room 现在我的问题是:一些程序能否出于安全原因拒绝JAVA代码?如果这是真的,如何在它们中启用Java 请注意,我使用NetBeans IDE来编程和编译jar文件。我的代码如下: p

我是Java编程的新手。我写这个程序是为了每秒粘贴“Hello world!”。该程序运行正常,文本粘贴在许多windows程序中,如记事本、Microsoft Word、浏览器和每个程序的文本区域或输入框中。但在某些程序中,我的代码不起作用,例如Windows End Task Manager或Garena room

现在我的问题是:一些程序能否出于安全原因拒绝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());
    }

  }

}

请帮帮我。谢谢大家。

一些程序可以出于安全原因拒绝JAVA代码吗?
没有JAVA程序的程序不知道任何JAVA程序。它们只需对Ctrl-V热键(通过操作系统)做出简单的反应,并将在系统剪贴板中找到的内容粘贴到它们的结构中。或者,在这种情况下,您将看不到“Hello world”字符串

可能在看不到粘贴数据的地方,它们也不会对手动Ctrl-V做出反应


报告说:

使用类生成输入事件与发布事件不同 到AWT事件队列或AWT组件,其中事件为 在平台的本机输入队列中生成。例如 Robot.mouseMove实际上会移动鼠标光标,而不是仅仅移动鼠标 生成鼠标移动事件


生成的事件是否进入系统事件队列(应引发异常)。似乎它们对某些人有效,而对其他人无效。但是,这不是因为使用Java来创建事件而产生的。

不要让我们悬而未决;告诉我们您的代码是否接收到
AWTException
。无论问题如何,您是否应该颠倒顺序:
r.keyrease(KeyEvent.VK_CONTROL);r、 密钥释放(KeyEvent.VK_V)以便在
V
之后释放
控件
c#sendKeys()
也不适用于taskManager。为什么?这是出于安全考虑吗?我不知道。可能是。哦,谢谢。正如我所知,您会说:>它们对Ctrl-V热键的简单反应这意味着程序限制Ctrl+V。不,这不是真的。当我手动按下Ctrl+V组合键,文本正确粘贴到这些程序的输入字段中时,Ctrl+V组合键就起作用了。这意味着:>无Java程序不知道任何Java程序,这意味着我的程序(我尝试在其输入字段中粘贴文本)没有读取Java代码??如果是,我该怎么办?将程序转换为其他语言,如C#?C#复制和粘贴代码是否适用于任何windows程序?谢谢