【发布时间】:2015-07-15 17:24:35
【问题描述】:
好的,所以。这让我彻底疯了。我正在用 Java 构建一个应用程序,它需要模拟键盘键。就像,我想欺骗整个计算机,让他们认为正在按下一个键。 (别担心,我的意图不是恶意的 :P )问题是,我使用 Java 的 Robot 类来模拟按键,并且有一个错误,不允许在某些应用程序中按下箭头键,无论出于何种原因。
所以我想我会制作一个小型 C++ 程序来处理输入模拟并从 Java 中调用它。但问题是:箭头键仍然不适用于某些程序。就像,它只是没有注册。据我所知,它们是不适用于 Java 的相同程序。
有没有什么方法可以在所有程序中 100% 地模拟箭头键按下?目前我对任何语言都持开放态度。
这是我目前拥有的 C++ 程序,如果重要的话。
#define WINVER 0x0500
#include <windows.h>
#include <iostream>
#include <cstring>
int main()
{
INPUT ip;
Sleep(2000);
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0;
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
ip.ki.wVk = VK_RIGHT;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));
Sleep(1000);
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
return 0;
}
我真的希望有人可以帮助我,因为我没有想法。
【问题讨论】:
-
可能是他们没有使用正常的方式接收键盘输入。也许他们使用直接输入或其他 api 进行键盘访问。
-
我读过一些关于它的东西,但如果是这样的话,我不知道如何解决它......
-
如果您真的非常需要它,可能会模拟键盘驱动程序
标签: java c++ keyboard simulate