用户 密码
太平洋系列网站:太平洋汽车网 | 太平洋游戏网
首  页 | 数码世界 | 手机通讯 | 硬件资讯 | 软件资讯 | 招聘与培训 | 游戏天下 | 下载中心 科技动态 | 今日报价 | 渠道商情 | 产品大全 | 笔 记 本 | 教你买电脑 | 评 测 室 | 短信中心
论  坛 | 影音家电 | 摄影专区 | 玩家E族 | 竞技天地 | Flash 动漫 | 有奖活动 |

-
您现在的位置:软件资讯 > 开发特区 > 开发语言 > C++Builder
C++ Builder 5 模拟键盘按键 自动输入文字

出处:电脑爱好者
责任编辑:zwg

[04-2-14 9:29] 作者:周世攀

AttachThreadInput()函数的原形如下:

BOOL AttachThreadInput(

DWORD idAttach, // 需要附加的线程ID

DWORD idAttachTo, // 附加到的线程ID

BOOL fAttach // true 附加 false 取消

);


函数使用的过程大致如下:


HWND hWnd;

hWnd = GetForegroundWindow(); // 得到当前窗口

if (hWnd == Form1->Handle) return; // 排除程序本身的窗口

DWORD FormThreadID = GetCurrentThreadId(); // 本程序的线程ID

// 当前窗口的线程ID

DWORD CWndThreadID = GetWindowThreadProcessId(hWnd, NULL);

// 附加输入线程

AttachThreadInput(CWndThreadID, FormThreadID, true);

// 得到当前键盘光标所在的窗口

hWnd = GetFocus();

// 取消附加的输入线程

AttachThreadInput(CWndThreadID, FormThreadID, false);


  hWnd就是当前键盘光标所在的窗口句柄。另外,经过测试发现,在Windows2000系统下发送字符消息(WM_CHAR)时,如果字符是一个汉字,则该字符对应的虚拟键盘码高位不为0,这样得到的字符就不正确。解决办法是做一个“与”运算: ch & 0xFF就可以了。

发给好友 投稿给我们 加入收藏 返回顶部

相关文章:
个性凸现的动画 特技效果
木马是如何编写的(三)
木马是如何编写的(二)
木马是如何编写的(一)
IT培训十大热门文章

内容搜索 
高级搜索
本栏今日焦点