易语言怎么获取另一个软件编辑框的内容

易语言怎么获取另一个软件编辑框的内容,第1张

“另一个软件编辑框”是什么意思?

指的是其他软件编辑框中的内容吗?

可以试试用超级模块中的 取标题() 来获取了。

需要提供的句柄通过易语言自带的 取鼠标所在窗口句柄() 就可以获得了。

提醒:对于类似QQ这种只有一个句柄的程序来说,这种方法无效

需要使用到超级模块,请自行下载。

以下是代码:

以下是界面:

运行效果:

如果是纯数字和英文,可以尝试定位窗口和数据位置截图,然后用OCR的控件(比如Asprise)解析数据。swt很多情况下用的都是windows控件,就当它是普通windows程序,试试直接取控件。

使用大漠插件可达到此功能

OCR----------------------

函数简介:

识别屏幕范围(x1,y1,x2,y2)内符合color_format的字符串,并且相似度为sim,sim取值范围(01-10),

这个值越大越精确,越大速度越快,越小速度越慢,请斟酌使用!

函数原型:

string Ocr(x1,y1,x2,y2,color_format,sim)

参数定义:

x1 整形数:区域的左上X坐标

y1 整形数:区域的左上Y坐标

x2 整形数:区域的右下X坐标

y2 整形数:区域的右下Y坐标

color_format 字符串:颜色格式串

sim 双精度浮点数:相似度,取值范围01-10

返回值:

字符串:

返回识别到的字符串

'获取控件的内容

Option Explicit

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_GETTEXT = &HD

Private Const WM_GETTEXTLENGTH = &HEPublic Function GetTextString(ByVal lyHwnd As Long) As String

Dim GetS As String

Dim SLen As Long

SLen = SendMessage(lyHwnd, WM_GETTEXTLENGTH, 0, 0)

If SLen = 0 Then Exit Function

SLen = SLen + 1

GetS = Space(SLen)

SLen = SendMessage(lyHwnd, WM_GETTEXT, SLen, ByVal GetS)

GetTextString = Left(GetS, SLen)

End Function 控件的句柄你应该能获取到,所以不说了

你做的这个是“第三方软件”,也可以说成“外挂程序”。

如果官方软件没有提供编程接口的话,可能要有点麻烦。

一般情况下外挂程序获取目标程序参数的方法是直接查找内存基址

实现目标程序一个事件的方法是调用"call"来实现。

你说的 获得下载速度,大小等信息,要先使用 反汇编工具(OD或CE),找到基址。然后通过 ReadProcessMemory API函数读取,但是在找到基扯后,还不能马上用ReadProcessMemory来读取,这个你还得看看ReadProcessMemory的参数。

有些程序对外挂程序做了防范机制,你可能很难找不到基址,或函数调用call。

还有,你获取目标程序界面上内容的函数是哪个,SendMessage(H,WM_GETTEXT,。。)还是GetWindowText,这两个函数看起来功能一样,其实不太一样哈,SendMessage得不到的 你可以用一下GetWindowText

不过最好的办法是查找基址。

以上就是关于易语言怎么获取另一个软件编辑框的内容全部的内容,包括:易语言怎么获取另一个软件编辑框的内容、VC是否能获取java程序界面数据、易语言取其他程序窗口(改程序窗口正在运行)的数据以及文本内容例如窗口为QQ查找联系人页面取所有文本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9724018.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存