SendInput() 键盘字母 C/C

新手上路,请多包涵

我正在尝试使用 SendInput() 将句子发送到另一个应用程序(记事本),然后按 Enter 键发送。

有代码片段吗?或帮助

原文由 Quiet1 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 907
1 个回答

我在阅读@Nathan 的代码、 此参考 并结合@jave.web 的建议后进行了修改。此代码可用于输入字符(大写和小写)。

 #define WINVER 0x0500
#include<windows.h>
void pressKeyB(char mK)
{
    HKL kbl = GetKeyboardLayout(0);
    INPUT ip;
    ip.type = INPUT_KEYBOARD;
    ip.ki.time = 0;
    ip.ki.dwFlags = KEYEVENTF_UNICODE;
    if ((int)mK<65 || (int)mK>90) //for lowercase
    {
        ip.ki.wScan = 0;
        ip.ki.wVk = VkKeyScanEx( mK, kbl );
    }
    else //for uppercase
    {
        ip.ki.wScan = mK;
        ip.ki.wVk = 0;

    }
    ip.ki.dwExtraInfo = 0;
    SendInput(1, &ip, sizeof(INPUT));
}

下面是按回车键的功能:

     void pressEnter()
{
    INPUT ip;
    ip.type = INPUT_KEYBOARD;
    ip.ki.time = 0;
    ip.ki.dwFlags = KEYEVENTF_UNICODE;
    ip.ki.wScan = VK_RETURN; //VK_RETURN is the code of Return key
    ip.ki.wVk = 0;

    ip.ki.dwExtraInfo = 0;
    SendInput(1, &ip, sizeof(INPUT));

}

原文由 Lê Quang Duy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题