如何在不使用键盘的情况下按键盘键?

时间:2010-04-17 20:07:53

标签: c++ windows

我希望我的程序按下键盘上的某些按键,而不是我在物理上进行操作。

我是怎么做到的?

编辑:找到了这个keybd_event()函数。似乎工作 http://www.codeproject.com/KB/cpp/sendkeys_cpp_Article.aspx

3 个答案:

答案 0 :(得分:1)

SendInput函数可以生成击键和其他类型的输入。我曾经习惯创建类似于虚拟键盘的应用程序。

使用Unicode的示例:

// This may be needed
// #define _WIN32_WINNT 0x0501 

#include <windows.h>
#include <winuser.h>

void    pressKey(WORD a_unicode)    
{       
        KEYBDINPUT kbinput;
        ZeroMemory(&kbinput, sizeof(kbinput));
        kbinput.wScan = a_unicode;
        kbinput.dwFlags = KEYEVENTF_UNICODE; 
        kbinput.time = 0;

        INPUT input;
        ZeroMemory(&input, sizeof(input));
        input.type = INPUT_KEYBOARD;
        input.ki = kbinput;

        SendInput(1, &input, sizeof(input));
}   

答案 1 :(得分:0)

发送Key Events

答案 2 :(得分:0)

SendMessageWM_KEYDOWN

一起使用

示例:

SendMessage(hwnd, WM_KEYDOWN, VK_T, NULL);