#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. Google performance Tools (gperftools) 使用心得

    Google performance Tools (gperftools) 使用心得 gperftools是google开发的一款非常实用的工具集,主要包括:性能优异的malloc free内存分配器 ...

  2. kubernetes 身份与权限认证 (ServiceAccount && RBAC)

    Kubernetes中提供了良好的多租户认证管理机制,如RBAC.ServiceAccount还有各种Policy等.   ServiceAccount Service Account为Pod中的进程 ...

  3. scp命令------两服务器之间传输数据

    scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 . 与rcp 不同的是,scp 在需要进行验证时会要求你输入密码 ...

  4. 31.FTP简介

    1.FTP 是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20.21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP 命令与参 ...

  5. (30)Linux文本处理

    1.cat命令:连接文件并打印输出到标准输出设备 cat 命令可以用来显示文本文件的内容(类似于 DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件. cat 命令 ...

  6. Nginx 指定域名(或子域名)和网站绑定

    问题起因 博主最近在 CentOS 上面部署另外一个网站,但并不想通过端口号来访问,因为端口号对于 SEO 优化不利,且用户访问较繁琐(使用域名不就是为了方便用户访问吗?再引入端口号岂不是和使用域名的 ...

  7. WPS Excel启用正则表达式

    WPS Excel启用正则表达式 新建一个空白表格文件 进入VB编辑器 插入模块 工具-引用-勾选正则表达式 (Microsoft VBScript Regular Express 5.5) 复制代码 ...

  8. k8s 调度 GPU

    最近公司有项目想在 k8s 集群中运行 GPU 任务,于是研究了一下.下面是部署的步骤. 1. 首先得有一个可以运行的 k8s 集群. 集群部署参考 kubeadm安装k8s 2. 准备 GPU 节点 ...

  9. codeforces 632F. Magic Matrix (最小生成树)

    You're given a matrix A of size n × n. Let's call the matrix with nonnegative elements magic if it i ...

  10. Panasonic Programming Contest (AtCoder Beginner Contest 186) E.Throne (数学,线性同余方程)

    题意:有围着一圈的\(N\)把椅子,其中有一个是冠位,你在离冠位顺时针\(S\)把椅子的位置,你每次可以顺时针走\(K\)个椅子,问最少要走多少次才能登上冠位,或者走不到冠位. 题解:这题和洛谷那个青 ...