0

我一直在尝试做某种自动点击器,并在 java 中有以下代码:

import java.awt.event.*;
import java.awt.*;

class keyStroke {
    public void Execute() throws AWTException {
        int n = 0;
        while(n < 100){
            Robot r = new Robot();
            r.delay(1000);
            r.keyPress(KeyEvent.VK_1);
            r.keyRelease(KeyEvent.VK_1);
            ++n;
        }
    }
}

单击键 1 可以正常工作,但是在某些游戏中不起作用。

它看起来只在聊天框上工作并访问它(输入键),但除此之外,没有其他工作(如使用技能或移动)。

然后,我决定也尝试使用 C++,使用以下代码

#include <iostream>
#include <windows.h>
#include <cstdlib>
using namespace std;

void SendKey (char Vk){
    char VkKey = VkKeyScan(Vk);
    keybd_event(VkKey, 0, 0, 0); 
    keybd_event(VkKey, 0, KEYEVENTF_KEYUP, 0);
}

int main(){
    while(true){
        SendKey('1');
        Sleep(1000);
    }
}

同样的事情也会发生。

你在做什么错?如果按键不适用于这种情况,我必须找到其他东西?

4

1 回答 1

0

我从经验中知道某些游戏输入不使用基于事件的结构。如果按键被按下,有些游戏每帧只检查一次。这意味着您在那一刻按下该键的机会为零。

诸如罗技键盘脚本工具之类的脚本实用程序面临着类似的问题,这有助于在按下和发布之间设置延迟。

另外:聊天窗口通常必须使用输入事件,因为如果每帧只注册一次按键,则几乎不可能打字。

于 2012-06-12T12:01:19.137 回答