#include <windows.h>
#include <QtDebug>
#include <locale>
#include <tchar.h>
#include <string> HWND hwnd = (HWND)0x000A069C; // https://docs.microsoft.com/zh-cn/windows/win32/winmsg/about-messages-and-message-queues
// 这里使用W,发送的是unicode,而不是用的A
QString str = "Ajanuw 中文";
for(QChar c: str){
// int v_latin = c.toLatin1(); // 不能转中文
int v_latin = c.unicode(); // 对应的code码
qDebug() << v_latin;
SendMessageW(hwnd,WM_IME_CHAR,(WPARAM)v_latin,(LPARAM)v_latin);
}

发送组合键

keybd_event

// ctrl+tap的组合键,然后抬起tab, ctrl
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(VK_TAB, 0, 0, 0); keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

SendInput

        BringWindowToTop(hwnd);

        INPUT ip;
ip.type = INPUT_KEYBOARD; // 输入事件的类型
ip.ki.wScan = 0;
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0; ip.ki.wVk = 0x41; // 按键 "A"
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT)); // 抬起按键
Sleep(30);
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));

SendInput 组合键,下面的程序先按下ctrl+tab的组合键,然后依次松开了tap和ctrl键后,在按下A键,再松开A键

        BringWindowToTop(hwnd);

        INPUT ip;
ip.type = INPUT_KEYBOARD; // 输入事件的类型
ip.ki.wScan = 0;
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0; // 按下ctrl
ip.ki.wVk = VK_CONTROL;
SendInput(1, &ip, sizeof(INPUT)); // 按下 tab
ip.ki.wVk = VK_TAB;
SendInput(1, &ip, sizeof(INPUT)); // 抬起tab
Sleep(30);
ip.ki.wVk = VK_TAB;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(INPUT_KEYBOARD, &ip, sizeof(INPUT)); // 抬起ctrl
Sleep(30);
ip.ki.wVk = VK_CONTROL;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(INPUT_KEYBOARD, &ip, sizeof(INPUT)); Sleep(30);
// 按下A
ip.ki.wVk = 0x41;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT)); // 抬起A
Sleep(30);
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));

qt 向窗口发送消息,键盘输入事件的更多相关文章

  1. python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件

    在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...

  2. WPF 捕获键盘输入事件

    最近修改的一个需求要求捕获键盘输入的 Text,包括各种标点符号. 最开始想到的是 PreviewKeyDown 或者 PreviewKeyUp 这样的键盘事件. 但是这两个事件的对象 KeyEven ...

  3. js对键盘输入事件绑定到特定按钮

    转自:https://www.cnblogs.com/liluping860122/archive/2013/05/25/3099103.html<script type="text/ ...

  4. [转] js对键盘输入事件绑定到特定按钮。

    <script type="text/javascript" language="javascript"> document.onkeyup = f ...

  5. 【转载】Delphi7从子线程中发送消息到主线程触发事件执行

    在对数据库的操作时,有时要用一个子线程来进行后台的数据操作.比如说数据备份,转档什么的.在主窗口还能同是进行其它操作.而有时后台每处理一个数据文件,要向主窗口发送消息,让主窗口实时显示处理进度在窗口上 ...

  6. C#实现相似QQ的隐藏浮动窗口、消息闪动

    功能简单介绍 当语音客服系统登录成功进入主界面时,本聊天工具将会自己主动隐藏在左下角位置,当鼠标移动到左下角时,自己主动弹出,当鼠标移开聊天窗口时,自己主动隐藏.假设想让聊天窗口固定在桌面.仅仅要拖动 ...

  7. kafka 生产者发送消息

    KafkaProducer 创建一个 KafkaThread 来运行 Sender.run 方法. 1. 发送消息的入口在 KafkaProducer#doSend 中,但其实是把消息加入到 batc ...

  8. C#模拟键盘输入(一)

    主要使用了Windows API 实现,你可以在你C盘下的system32文件夹中找到user32.dll,函数的说明在MSDN都有,只需要拿名字去搜一下就行 根据窗口的类名和窗口名称获取窗口句柄,成 ...

  9. 眼见为实(2):介绍Windows的窗口、消息、子类化和超类化

    眼见为实(2):介绍Windows的窗口.消息.子类化和超类化 这篇文章本来只是想介绍一下子类化和超类化这两个比较“生僻”的名词.为了叙述的完整性而讨论了Windows的窗口和消息,也简要讨论了进程和 ...

随机推荐

  1. is == id ,编码

    一. id 查询内存地址. # name = 'alex' # print(id(name)) # name1 = 'alex' # name2 = 'alex' # print(name1 == n ...

  2. HTML 5 学习第二课

    元素:<p>+++++++++</P> 全部内容 标签:<P></P> 属性:标签内部的内容 eg:<img src=" "& ...

  3. linux日志中查找关键字、前几行、结尾几行,Linux的find用法示例

    linux在日志中查找关键字.前几行.结尾几行,Linux的find用法示例 1.linux在日志中查找关键字.前几行.结尾几行 1.1查看日志 前 n行: 1.2查看日志 尾 n行: 1.3根据 关 ...

  4. Spring Boot整合Spring Data JPA

    1.JPA 2.Spring Data JPA 3.导入依赖 4.连接数据库 5.实体类 6.Repository 7.测试 1.JPA JPA是Java Persistence API的简称,中文名 ...

  5. Golang内建库学习笔记(1)-sort和container

    sort库 利用sort.Sort进行排序须实现如下接口 type Interface interface { // 获取数据集合元素个数 Len() int // 如果i索引的数据小于j所以的数据, ...

  6. Codeforces Round #656 (Div. 3) B. Restore the Permutation by Merger

    题目链接:https://codeforces.com/contest/1385/problem/B 题意 有两个大小为 $n$ 的相同的排列,每次从二者或二者之一的首部取元素排入新的数组,给出这个大 ...

  7. python的threading的使用(join方法,多线程,锁threading.Lock和threading.Condition

    一.开启多线程方法一 import threading,time def write1(): for i in range(1,5): print('1') time.sleep(1) def wri ...

  8. hdu2196 Compute

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  9. POJ 2195 & HDU 1533 Going Home(最小费用最大流)

    这就是一道最小费用最大流问题 最大流就体现到每一个'm'都能找到一个'H',但是要在这个基础上面加一个费用,按照题意费用就是(横坐标之差的绝对值加上纵坐标之差的绝对值) 然后最小费用最大流模板就是再用 ...

  10. 哈尔滨理工大学软件与微电子学院程序设计竞赛(同步赛) C.Coronavirus (BFS)

    题意:有一个图,要求从\(S\)走到\(E\),\(.\)表示可以走的路径,\(*\)周围的八个方向均不能走,要求判断是否能走到\(E\),若能,输出最小路径长度,否则输出\(Impossible\) ...