SendInput()键盘字母C/C++

11 c c++ keyboard winapi

我试图用SendInput()一个句子发送到另一个应用程序(记事本),然后发送它击中Enter密钥.

任何代码片段?或者帮忙

Nat*_*idd 8

INPUT input;
WORD vkey = VK_F12; // see link below
input.type = INPUT_KEYBOARD;
input.ki.wScan = MapVirtualKey(vkey, MAPVK_VK_TO_VSC);
input.ki.time = 0;
input.ki.dwExtraInfo = 0;
input.ki.wVk = vkey;
input.ki.dwFlags = 0; // there is no KEYEVENTF_KEYDOWN
SendInput(1, &input, sizeof(INPUT));

input.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &input, sizeof(INPUT));
Run Code Online (Sandbox Code Playgroud)

虚拟键码列表 .....

  • 使用`VkKeyScanEx(char,KeyboardLayout)`将你的"常用"字符放入这个例子:) ...`input.ki.wVk = VkKeyScanEx('a',kbl);`至于KeyboardLayout最简单的方法是加载当前窗口的keyboardLayout:`HKL kbl = GetKeyboardLayout(0);` (2认同)

Ida*_*n K 1

SendInput 函数接受 INPUT 结构数组。INPUT 结构可以是鼠标或键盘事件。键盘事件结构体有一个名为 wVk 的成员,它可以是键盘上的任意键。Winuser.h 头文件为每个键提供宏定义 (VK_*)。