捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
5 2017.06

AttachThreadInput

点击次数:1304 更新时间:2017-6-5 20:03:40  【打印此页

原文链接 -> 传送门

函数功能:

AttachThreadInput 函数用于附加或分离一个线程与另一个线程的输入处理机制。


API 函数原型:

注释:_In_ 说明该参数是输入的。

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



参数解析:

参数

含义

idAttach

指定被附加到另一个线程的线程标识符(该线程不能是系统线程)

idAttachTo

1. 指定另一个线程的线程标识符(该线程不能是系统线程
2. 因为线程不能自身附加,所以被附加的线程和另一个线程不能为同一线程

fAttach

1. 如果这个参数为 TRUE,这两个线程附加
2. 如果这个参数为 FALSE,这两个线程分离



返回值:

1. 如果函数调用成功,返回值是非 0;

2. 如果函数调用失败,返回值是 0。

若想获得更多的错误信息,请调用 GetLastError 函数。

Windows Server 2003 和 Windows XP:不能调用 GetLastError 函数获取扩展的错误信息。在 Windows Vista 之后的版本提供支持。


备注:

1. 不同线程中创建的窗口通常彼此独立地处理输入。也就是说,他们拥有自己各自的输入状态(聚焦,活动,捕获窗口,虚拟键状态,队列状态,等等)。同时,它们的输入处理不与其他线程的输入处理同步。通过使用 AttachThreadInput 函数,一个线程可以将其输入处理机制附加到另一个线程中,直到线程第二次调用 AttachThreadInput 函数(指定 fAttach 参数为 FALSE)才能使线程分离,否则这两个线程接收的键盘和鼠标事件由 idAttachTo 参数指定的线程处理。这也允许线程共享它们的输入状态,因此它们可以调用 SetFocus 函数设置键盘焦点到另一个不同线程的窗口。这也允许线程获取虚拟键状态信息。

2. 如果这两个指定的线程都没有消息队列,那么 AttachThreadInput 函数调用失败。当线程第一次调用与用户相关的函数或与图形设备接口相关的函数时,系统会创建线程的消息队列。如果安装了日志记录钩子,AttachThreadInput 函数也会调用失败。日志记录钩子附加所有的输入队列。

3. 注意:通过 GetKeyState 函数或 GetKeyboardState 函数获取的虚拟键状态,在调用一次 AttachThreadInput 函数后将被重置。您不能在另一个桌面把一个线程附加到另一个线程。


需求:

Minimum supported client

Windows XP [仅桌面应用程序]

Minimum supported server

Windows 2003 服务器版 [仅桌面应用程序]

Header

Winuser.h (包含于 Windows.h)

Library

User3232.lib

DLL

User3232.dll


 

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1304 更新时间:2017-6-5 20:03:40  【打印此页

上一条:DeleteFileTransacted

下一条:GetProcAddress

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修