WindowsAPI----AttachThreadInput使用
- AttachThreadInput函数说明如下:
WINUSERAPI
BOOL
WINAPI
AttachThreadInput(__in DWORD idAttach,__in DWORD idAttachTo,__in BOOL fAttach);
简单来说,就是让两个线程,拥有共同的焦点,可以进行处理输入等信息
简要的来说就是如此,接下来是简单的使用:
- 首先创建一个win32的项目,并且添加一个按钮
添加按钮的代码如下:
//创建按钮 CreateWindow(L"Button", L"测试按钮", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 35, 10, 120, 60, hWnd, (HMENU)IDB_FRONTBUTTON,hInst , NULL);
然后按钮点击事件中逻辑处理的代码如下:
HWND QQ_HWND=FindWindow(NULL,L"本周.txt - 记事本");DWORD cur_threadid = GetWindowThreadProcessId(QQ_HWND,NULL);DWORD iss = GetCurrentThreadId();DWORD ForegroundThreadID = GetWindowThreadProcessId(GetForegroundWindow(), NULL);if (cur_threadid == ForegroundThreadID){MessageBox(nullptr,L"重复id",L"退出",0);break;}else{//测试后台窗口激活到前台AttachThreadInput(ForegroundThreadID,cur_threadid,TRUE);::SetForegroundWindow(QQ_HWND);HWND hFocus = GetFocus(); AttachThreadInput(ForegroundThreadID,cur_threadid,FALSE);PostMessage(hFocus, WM_KEYDOWN, VK_TAB, 0); //空格输入//}
这段代码的含义是 先获取到窗口名为本周.txt - 记事本
的句柄,
然后获取前置窗体的线程id和原先打开的记事本的线程id
然后使用AttachThreadInput()
,当最后一个参数为True时,即连接两个线程id,使其拥有相同的焦点,然后再获取焦点句柄,并发送tab的消息,即空格键。
**关键点:**使用之后必须要关闭,即AttachThreadInput()
最后一个参数设为False时候关闭,接下来看演示效果。
现在可以看出,点击按钮时,产生tab消息,发送到记事本句柄当中,可以简单的学会使用AttachThreadInput
消息,要灵活使用的话还是得结合实例。
WindowsAPI----AttachThreadInput使用相关推荐
- API函数的中文说明及所有的32位WindowsAPI函数的定义
API函数的中文说明及所有的32位WindowsAPI函数的定义 ============================API函数的中文说明============================= ...
- C#Winform+WindowsAPI做个剪贴板无缝自动保存器(视频截图利器)
C#Winform+WindowsAPI做个剪贴板无缝自动保存器(视频截图利器) (本文最新代码已上传到GitHub,地址在(https://github.com/bitzhuwei/Clipboar ...
- WindowsAPI每日一练(2) 使用应用程序句柄
WindowsAPI每日一练系列 :https://www.cnblogs.com/LexMoon/category/1246238.htmlWindowsAPI每日一练(1) WinMain Win ...
- AttachThreadInput
BOOL WINAPI AttachThreadInput(_In_ DWORD idAttach,_In_ DWORD idAttachTo,_In_ BOOL fAttach ); idAttac ...
- Windows服务启动进程----Cjwdev.WindowsApi.dll
windows服务下无法启动外部程序 做一个windows服务监听服务,涉及到windows服务启动外部程序的一个过程,但是调试测试发现,无法简单的用process.start()这种方法, 原因是在 ...
- php可以调用windowsapi吗_2.如何调用WindowsApi
2.如何调用WindowsApi 在上一篇章节中 很不专业的介绍了一下WindowsApi 如果你本身就知道 那你也压根不用看 如果你本身就不知道 就算我说的再多 估计你也觉得是多余 所以还是来点实际 ...
- [原创]C#应用WindowsApi实现查找(FindWindowEx)文本框(TextBox、TextEdit)。
/// <summary> /// 获取文本框控件 /// </summary> /// <param name="hwnd">文本框所在父窗口 ...
- WindowsAPI概览
WindowsAPI 转载于:https://www.cnblogs.com/tommyli/archive/2009/04/27/1444435.html
- Windows设备信息获取:(摄像头,声卡为例)Qt,WindowsAPI对比说明(2)
Windows设备信息获取:(摄像头,声卡为例)Qt,WindowsAPI对比说明 补充说明 问题 QT摄像头相关信息获取(分辨率,图像格式) WindowsAPI,win10,win7不兼容问题 兼 ...
- WindowsAPI编程 简单的计算器
WindowsAPI编程 简单的计算器 一.简述 记--使用WindowsAPI开发图形界面应用--简单的计算器. 例子:链接: https://pan.baidu.com/s/1SDg5RByN4x ...
最新文章
- python列表求平均值_python与统计概率思维
- ZOJ 2702 Unrhymable Rhymes(DP)
- axios 最全 请求拦截器 响应拦截器 配置公共请求头 超时时间 以及get delete post put 四种请求传参方式
- python文件只读模式_Python脚本去除文件的只读性操作
- 在Python中定义和使用抽象类的方法
- HDU 4359 Easy Tree DP? 组合数学+动归
- java开发web使用struts2,springMVC和spring,Jquery的理由?
- 《推荐系统笔记(十)》CTR预估以及一般算法介绍(GBDT+LR)
- 软考高项——计算专题
- 智力题解题报告 No.4 9个点10个线
- python中oserror winerror_python – OSError:[WinError87]参数不正确
- VUE连接MQTT即时通讯
- 【清华夏令营2016模拟5.31】图森破
- 会议室预定小程序[叮当会议]
- 2022年研究生初试成绩终于来了-文都管联院
- The server time zone value is unrecognized or represents more than one time zone. 这个问题的解决方法
- 拼多多关键词测试软件,拼多多图片怎么测试?有哪些步骤?
- 给你心爱的 npm 包上个『北京户口』
- laravel 事务_【钢结构建筑】gmp建筑师事务所 | 杭州铁路南站
- python隐秘的角落——笛卡尔之心
热门文章
- 从实现原理来讲,Nacos 为什么这么强
- php 删除%3ca%3e标签,a和table标签的应用
- android setflag找不到_Android面试题4–Activity之Intent的Flag
- linux jsp连接mysql_Linux JSP连接MySQL数据库
- 使用Beetle简单构建聊天室程序
- Java界面编程—事件的种类
- 【Codeforces Round #507 (Div. 2, based on Olympiad of Metropolises) B】Shashlik Cooking
- Day4 MySql触发器视图索引以及设计优化
- windows x64 软件约定
- Cookie学习总结