- 2
- 0
- 约3.83万字
- 约 10页
- 2021-11-30 发布于天津
- 举报
第一个:FindWindow 根据窗口类名或窗口标题名来获得窗口的句柄,该函数
返回窗口的句柄,
这个函数的定义是这样的 HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCSTR lpWindowName); 第一个参数填窗口的类名, 第二个填窗口的标题名, 其实是不需要同时填两 个参数的, 也就是说, 你只要知道窗口的类名或窗口的标题就可以了, 没有的那个就用 NULL 代替。比如现在有一个窗口名为 无标题 .txt - 记事本 的记事本程序。那么我就可以用上 面的函数获得这个窗口的句柄, 那获得了这个窗口的句柄我可以干什么呢?作用可大了, 因 为很多操作窗口的函数,都需要窗口句柄作参数,如移动、改变窗口大小的 MoveWi ndow函
数,在这里举个例子,大家就更能体会到这个 FindWindow 的用法、用处。
FindWindow 例子:已知一个窗口名称,写一个程序关闭该窗口,假设当前电脑正有一个窗 口名为 无标题 .txt - 记事本 的记事本程序运行
#includewindows.h//APII 函数的头文件
int main()
{
HWND wn d;〃定义一个窗口句柄变量,用以存储找到的窗口句柄
wnd=FindWindow(NULL, 无标题 .txt - 记事本 );// 获得窗口名为 无标题 .txt - 记事本 的窗口句柄
SendMessage(wnd,WM_CLOSE,0,0);〃 调用 SendMessage函数,发送一个 WM_CLOSE关闭) 消息给wnd窗口句柄。
return 0;
}
如果要根据窗口类名来获得窗口句柄话, 只要给函数的第一个参数填类名, 第二个参数窗口 名填NULL即可,用Spy++可查看窗口类名。
第二个:SendMessage艮据窗口句柄发送一个消息给窗口
函数定义: LRESULTSendMessage(HWNDhWnd, UINT Msg, WPARAwMParam, LPARAMIParam);
第一个参数是窗口句柄, 第二参数个是消息类型, 下面的消息表列举了所有消息, 第三,四 个参数是消息附带信息,解释依赖于消息类型,比如一个字符消息( WM_CHAR那么第三个
参数就储存有一个字符的 ASCII 码。
消息机制大家都应该知道吧, Windows 是基于消息的系统, 鼠标移动键盘按键都会产生消息。
接下来举一个例子, 发送一个 WM_CHA消息给窗口,也就是模仿键盘按键, 接收消息的窗口
依旧以 无标题 .txt - 记事本 为例:
Sen dMessage例子:模仿键盘按键
#includewindows.h
int main()
{
HWND wnd;
wnd=FindWindow(NULL, 无标题 .txt - 记事本 );
while(1)
{
SendMessage(wnd,WM_CHAR,WPARAM(a),0);
Sleep(300);
}
return 0;
}
呵呵上面的例子是不是没用, 这是为什么呢, 哪里出错了吗?错倒是没有错, 只是窗口句柄 有问题, 消息发送给了主窗口。 接收消息的窗口不对。 记事本窗口界面有些有什么东西呢? 菜单,编辑框, 状态栏等控件,控件也是窗口,既然是窗口,那当然它们也有窗口句柄, 而在记事本里是在哪里打字的?编辑框控件里打字的嘛! 所以消息应该发送编辑框控件, 那 如何获得记事本里编辑框控件的窗口句柄呢?用 FindWindow 吗?不知道编辑框窗口标题 名,类名也不知道,当然也有其它方法获取编辑框窗口标题名和窗口类名,如 Spy++。关于
如何获得编辑框句柄, 将在以后的函数中会有介绍, 这里我们就用 WindowFromPoint 这个函 数来获取,这个函数获取窗口句柄的方法比较笨, (相对于我这个例子来说),这个函数是 根据什么来获取窗口句柄的呢?根据屏幕坐标点,如屏幕坐标点 20, 20,当前是哪个窗口
占有,就返回哪个窗口的句柄。有了这个函数,我们还需要一个函数 GetCursorPos 获取鼠
标当前位置(针对于屏幕);
可行的例子:模仿键盘按键:
#includewindows.h
int main()
{
POINT curpos;// 一个可储存坐标点的结构体变量, x 横坐标, y, 纵坐标,如
curpos.x curpos.y
while(1)
{
GetCursorPos(curpos);// 获取当前鼠标的位置,位置将储存在 curpos 里。
HWND hWnd = WindowFromPoint(curpos);// 根据 curpos 所指的坐标点获取窗口句柄
SendMessage(hWnd,WM_CHAR,WPA
您可能关注的文档
- Unit4Lesson1Thisisthelivingroom.(练习及解析)_北师大版(三起)四年级英语上册.doc
- Unit5Whataretheshirtsmadeof知识点整理知识点整理(word文档良心出品).doc
- Unit6SoundtimeSongtimeCheckouttimeTickingtime(练习及解析)_译林版(三起)四年级英语下.doc
- Unit8汉英对比与翻译(一).doc
- Units1—5单元综合测试.doc
- Unit_4_How_do_you_get_to_school__教学设计_教案.doc
- Unit电子教学导案.doc
- UNO-2053在工厂SCADA系统中的应用.doc
- USB光隔离开关量输入输出模块.doc
- U单据添加自定义项并自动带出.doc
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- CAD软件:CATIA二次开发_CATIAVBA编程基础.docx VIP
- 2025 国家电投 新能源区域化管理实施方案.docx VIP
- 基于 CNN-BiLSTM 的中短期电力负荷预测.docx VIP
- 乘运合同纠纷案代理词吴一诉西安汽车客运有限公司客运合同纠纷案.docx VIP
- 机械设计软件:CATIA二次开发_(8).CATIAVBA高级编程技巧.docx VIP
- 佛教戒律论文开题报告.docx VIP
- 2025春人教版三年级下册英语Unit 2 Expressing yourself Part B Read and write 课件.pptx VIP
- CAD软件:CATIA二次开发_(6).CATIAVBA高级编程技巧.docx VIP
- 火电项目可行性报告.ppt VIP
- 机械设计软件:CATIA二次开发_(3).CATIAVBA编程入门.docx VIP
原创力文档

文档评论(0)