通过句柄获取(设置)第三方软件窗口中的数据

在软件二次开发过程中,如果对象软件没有提供二次开发接口(多数情况如此),和对象软件窗口的交互只能使用句柄来完成。为了方便工作,我特意开发了这款名为句柄探测器的软件,对于普通用户而言,软件中的查看密码框功能可能会有些用处,但请勿用于不正当用途。同时这款软件对QQ等经过特殊处理的软件无效。

句柄探测器演示

句柄,是整个Windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息。句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows使用了大量的句柄来标识很多对象。

句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不在I/O文件中,它是毫无用处的。数据对象加载进入内存中之后即获得了地址,但是这个地址并不是固定的,数据对象会根据需要在内存与硬盘之间游弋移动(例如不常用的数据会为常用数据让出其占用的内存空间进而被淘汰进硬盘中的虚拟内存之中以优化配置整体系统的资源进而提升效率性能),因此其物理地址总是变动的,那么作为管理者 则必须对管理对象所发生的变化了如指掌才行,因此系统为进程分配固定的地址(句柄)来存储进程下的数据对象变化后的地址也就是当前的地址,其实设计机制很简单 :系统的某个部门移动了对象的地址后,同时上报给句柄所属部门管理者,管理者将改动写入句柄即可。该数据被重新起用时去其所属句柄内按内容存取即可。

本软件的源代码已上传至CSDN,希望您能反馈信息,共同学习提高。

源代码下载

end

  • 工资小程序
  • 员工工资查询小程序
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

您必须登录才能发表评论!