我一直在尝试做某种自动转换,并在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);
}
}
同样的事情发生了。
你做错了什么?如果按键不适用于这种情况,我必须找到别的东西吗?
答案 0 :(得分:0)
我从经验中知道某些游戏输入不使用基于事件的结构。如果按下某个键,某些游戏每帧仅检查一次。这意味着您在该确切时刻按键的几率为零。
诸如罗技键盘脚本工具之类的脚本实用程序面临着类似的问题,并且有助于在按下和释放之间产生延迟。
除此之外:聊天窗口通常必须使用输入事件,因为如果按键仅按帧每次注册一次,则几乎不可能打字。