AutoIt 怎样读取外部程序中ListView控件中的内容啊?

AutoIt 怎样读取外部程序中ListView控件中的内容啊?,第1张

*** 作外部程序中的控件首选Controlxxx函数

这里可以用ControlListView函数

帮助上有具体介绍的,带例子。

函数原型:

ControlListView ( "窗口标题", "窗口文本", 控件ID, "命令" [, 选项1 [, 选项2]] )

最后三个参数用下面这个形式:

"GetText", 项目, 子项目 ==>返回指定项目/子项目的文本.

众所周知,大多数e语言教程内存读写都是通过某某模块直接从外部读写的。

最常见的某某.读内存小数型(进程句柄,参数地址),但是市面上的辅助都是直接注入到游戏内存里面,这种方法就明显不适用了,这时候大家就需要在网上各种搜寻可以读写的模块,但是一般这种模块藏的很深,很难找到,我自己学习的时候深有体会。

大家有没有想过这种模块的原理是什么?其实就是两个函数,一个ReadProcessMemory,另一个就是WriteProcessMemory,几乎所有模块都是依据这两个函数读写。这两个函数对应的库名都是kernel32.dll

ReadProcessMemory这函数总共有5个参数HANDLE hProcess, 进程句柄

LPCVOID lpBaseAddress,内存地址

LPVOID lpBuffer,存放地址

SIZE_T nSize,读取长度

SIZE_T *lpNumberOfBytesRead,写出长度,一般默认为0

WriteProcessMemory这5个函数参数大同小异和上面,就是三四个参数变成写入内容和写入长度

有了这两个函数,就可以实现内存读取了,应该很多人都不知道,注入了内存你就是这程序的一部分了,所以你可以在里面任意妄为了,读写自己内存不是易如反掌。

下面是例子,主要关键读内存代码,

.子程序 读整数, 整数型

.参数 内存地址, 整数型

.局部变量 存放地址, 字节集

存放地址 = 取空白字节集 (4) //初始化字节集

读内存 (进程句柄, 内存地址, 存放地址, 4, 0) //读内存是自己添加的dll,这个不需要说吧!

返回 (取字节集数据 (存放地址, #整数型, ))

这里说下为啥要存放地址要是字节集,主要是方便转换各种类型。

写内存代码也是大同小异,这里就不说了,其实也很简单,和上面没啥区别。

GetListViewItmeValue(introws, intcols)

在listview里面有这样的用法吗?你的程序不报错已是奇迹了。

listview不像datagridview或者datatable,

它的列不是用col来索引的,而是

listview.item[itemindex].subitems[subitemindex].text


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11386472.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存