• 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使用相关推荐

  1. API函数的中文说明及所有的32位WindowsAPI函数的定义

    API函数的中文说明及所有的32位WindowsAPI函数的定义 ============================API函数的中文说明============================= ...

  2. C#Winform+WindowsAPI做个剪贴板无缝自动保存器(视频截图利器)

    C#Winform+WindowsAPI做个剪贴板无缝自动保存器(视频截图利器) (本文最新代码已上传到GitHub,地址在(https://github.com/bitzhuwei/Clipboar ...

  3. WindowsAPI每日一练(2) 使用应用程序句柄

    WindowsAPI每日一练系列 :https://www.cnblogs.com/LexMoon/category/1246238.htmlWindowsAPI每日一练(1) WinMain Win ...

  4. AttachThreadInput

    BOOL WINAPI AttachThreadInput(_In_ DWORD idAttach,_In_ DWORD idAttachTo,_In_ BOOL fAttach ); idAttac ...

  5. Windows服务启动进程----Cjwdev.WindowsApi.dll

    windows服务下无法启动外部程序 做一个windows服务监听服务,涉及到windows服务启动外部程序的一个过程,但是调试测试发现,无法简单的用process.start()这种方法, 原因是在 ...

  6. php可以调用windowsapi吗_2.如何调用WindowsApi

    2.如何调用WindowsApi 在上一篇章节中 很不专业的介绍了一下WindowsApi 如果你本身就知道 那你也压根不用看 如果你本身就不知道 就算我说的再多 估计你也觉得是多余 所以还是来点实际 ...

  7. [原创]C#应用WindowsApi实现查找(FindWindowEx)文本框(TextBox、TextEdit)。

    /// <summary> /// 获取文本框控件 /// </summary> /// <param name="hwnd">文本框所在父窗口 ...

  8. WindowsAPI概览

    WindowsAPI 转载于:https://www.cnblogs.com/tommyli/archive/2009/04/27/1444435.html

  9. Windows设备信息获取:(摄像头,声卡为例)Qt,WindowsAPI对比说明(2)

    Windows设备信息获取:(摄像头,声卡为例)Qt,WindowsAPI对比说明 补充说明 问题 QT摄像头相关信息获取(分辨率,图像格式) WindowsAPI,win10,win7不兼容问题 兼 ...

  10. WindowsAPI编程 简单的计算器

    WindowsAPI编程 简单的计算器 一.简述 记--使用WindowsAPI开发图形界面应用--简单的计算器. 例子:链接: https://pan.baidu.com/s/1SDg5RByN4x ...

最新文章

  1. python列表求平均值_python与统计概率思维
  2. ZOJ 2702 Unrhymable Rhymes(DP)
  3. axios 最全 请求拦截器 响应拦截器 配置公共请求头 超时时间 以及get delete post put 四种请求传参方式
  4. python文件只读模式_Python脚本去除文件的只读性操作
  5. 在Python中定义和使用抽象类的方法
  6. HDU 4359 Easy Tree DP? 组合数学+动归
  7. java开发web使用struts2,springMVC和spring,Jquery的理由?
  8. 《推荐系统笔记(十)》CTR预估以及一般算法介绍(GBDT+LR)
  9. 软考高项——计算专题
  10. 智力题解题报告 No.4 9个点10个线
  11. python中oserror winerror_python – OSError:[WinError87]参数不正确
  12. VUE连接MQTT即时通讯
  13. 【清华夏令营2016模拟5.31】图森破
  14. 会议室预定小程序[叮当会议]
  15. 2022年研究生初试成绩终于来了-文都管联院
  16. The server time zone value is unrecognized or represents more than one time zone. 这个问题的解决方法
  17. 拼多多关键词测试软件,拼多多图片怎么测试?有哪些步骤?
  18. 给你心爱的 npm 包上个『北京户口』
  19. laravel 事务_【钢结构建筑】gmp建筑师事务所 | 杭州铁路南站
  20. python隐秘的角落——笛卡尔之心

热门文章

  1. 从实现原理来讲,Nacos 为什么这么强
  2. php 删除%3ca%3e标签,a和table标签的应用
  3. android setflag找不到_Android面试题4–Activity之Intent的Flag
  4. linux jsp连接mysql_Linux JSP连接MySQL数据库
  5. 使用Beetle简单构建聊天室程序
  6. Java界面编程—事件的种类
  7. 【Codeforces Round #507 (Div. 2, based on Olympiad of Metropolises) B】Shashlik Cooking
  8. Day4 MySql触发器视图索引以及设计优化
  9. windows x64 软件约定
  10. Cookie学习总结