简易快速回复组件的设计与实现
学习内容
- 判断窗口的前后关系
- 程序的逻辑处理
- 【作业】在软件页面添加按钮,使软件能够添加修改删除发送的内容,并把修改的内容保存到文件中
- 【新增一个托盘图标】给一个右键菜单,可以停止检测,可以显示出来,也可以退出程序
- 【拓展】发送消息API
- 微信同样可以这样做
学习重点
- 函数回调的用法:需要我们传递一个子程序的地址。每次找到一个新窗口,就自动调用我们传入的程序指针,相当于调用我们的子程序
- 【注意】回调子程序必须严格按照格式来写,否则会出错
学习难点
- 在众多的窗口句柄中取出自己想要的句柄
- 获取前台窗口句柄,设置窗口到前台API
- 根据当前获得的窗口句柄,获得窗口的类名getClassName
- 给api缓冲区,定义一个局部变量,取255个空白文本,然后设置缓冲区的大小是255
学习记录
- 窗口句柄是标识窗口的唯一值
- EnumWindow枚举所有窗口句柄
- 参数如何传址?去地址符加变量名或者子程序名
- 如何取缓冲区?
- 调试输出命令比原始的调试命令好用,会将逗号分割的数据在同一行输出
- 加入成员命令
- 如果代码没有保存,则程序会在临时目录运行,会产生意想不到的问题
- 获取窗口标题getWindowText
- 一定要注意API有没有参数
-
API要求的是整数型,参数是子程序指针类型,要进行转换
`.版本 2
API_枚举父窗口 (&回调_查找窗口句柄, 100)
`
2022/6/10 9:34:19
如何通过句柄获取窗口的位置标题类名等
getClassName
学习API
- 获得窗口的所有句柄,涉及回调子程序
- 回调子程序的编写方式:返回值和参数一定要对应(当前找到的窗口句柄,附加的参数),注意,子程序由系统自动调用,用户写好即可。传函数指针的时候要用到取地址符
- 就是说,调用api后,系统每找到一个,就会调用一次回调函数,可以在自定义的回调函数中写自己需要的内容
- 获取当前前台窗口句柄getForegroundWindow
- 设置窗口到前台setForegroundWindow
找到需要的窗口并实现附着效果
- 先获得聊天窗口的句柄和标题
- 判断窗口是不是在前台(用户要输入的地方就是前台),这里使用时钟来完成,获取用户当前正在使用的前台窗口句柄
- 判断当前窗口是不是自己,如果是自己,啥也不做
- 判断当前窗口是不是QQ
- 如果是聊天窗口,使用启动窗口的聊天命令来对窗口进行移动
思路:当我们找出所有的符合的聊天窗口的句柄和标题的时候,我们应该把他们用数组存储起来,用加入成员命令添加,用计次循环来判断
- 当聊天窗口不在前台的时候,应该把程序窗口隐藏,当显示出来的时候,就把程序窗口也显示出来。
设置文本的内容
-
当窗口创建完毕的时候,导入文本文件,调用子程序来实现
- 子程序中读取文件内容到临时变量
- 对读取到的文本进行分割
- 将分割后的文本加入到超级列表框中;插入表项,得到表项索引,然后置标题把文本内容插入
-
实现当双击超级列表框数据的时候,超级列表框中的数据加入到文本中
- 判断当前的项目能不能插入,有没有项目
- 使用置剪辑版文本命令,当粘贴的时候自动出现选中项的内容
-
在e程序中添加按钮和菜单,实现超级列表框内容的增删查改,并保存到文件中
-
用托盘图标表明当前程序正在执行,可以退出该程序
使用发送消息的命令可以模拟出文本粘贴的效果,但要使用程序集变量来保存当前的聊天窗口句柄
信息值输入为粘贴
思考
-
在计次循环中使用返回命令的结果是
-
默认的整数型数据是?
- 普通的整数型变量在输出的时候是0
TIPS
这里条件有限,就弄一个程序窗口附着在记事本的右侧,点击插入文本,然后
数组是从1开始的,然而索引和列都是从0开始的
2022年6月19日19:57:52
20简易快捷回复.e
(18.2 KB, 下载次数: 3)
|