易语言如何获取外部窗口的组件

易语言如何获取外部窗口的组件,第1张

版本 2

支持库 spec

支持库 eAPI

子程序 _按钮1_被单击

局部变量 句柄, 整数

局部变量 WINDOWPLACEMENT, WINDOWPLACEMENT

句柄 = 取指定窗口句柄 (“TXGuiFoundation”, “QQ2012”) ' 取出QQ登陆框的 句柄

如果真 (句柄 ≠ 0)

' --------------------------QQ登陆窗口的位置-------------------------------

取窗口位置 (句柄, WINDOWPLACEMENT)

调试输出 (“顶边 = ” + 到文本 (WINDOWPLACEMENTrcNormalPositiontop))

调试输出 (“左边 = ” + 到文本 (WINDOWPLACEMENTrcNormalPositionLeft))

调试输出 (“右边 = ” + 到文本 (WINDOWPLACEMENTrcNormalPositionRight))

调试输出 (“底边 = ” + 到文本 (WINDOWPLACEMENTrcNormalPositionBottom))

' ----------------------------密码框的位置--------------------------------

调试输出 (“密码框顶边 = ” + 到文本 (WINDOWPLACEMENTrcNormalPositiontop + 184))

调试输出 (“密码框左边 = ” + 到文本 (WINDOWPLACEMENTrcNormalPositionLeft + 120))

模拟鼠标点击 (WINDOWPLACEMENTrcNormalPositionLeft + 125, WINDOWPLACEMENTrcNormalPositiontop + 189, 0)

' 取出来的是编辑框的右上角一个点。加多5个坐标,保证能点到编辑框。

模拟按键 (#A键, #B键, #C键)

如果真结束

“dll命令-----------------

版本 2

DLL命令 取窗口位置, 整数型, "user32", "GetWindowPlacement", 公开

参数 窗口句柄, 整数型

参数 信息结构, WINDOWPLACEMENT

DLL命令 取指定窗口句柄, 整数型, , "FindWindowA"

参数 窗口类名, 文本型

参数 窗口标题, 文本型

‘自定义数据-----------------------------------

版本 2

数据类型 WINDOWPLACEMENT, 公开

成员 Length, 整数型

成员 flags, 整数型

成员 showCmd, 整数型

成员 ptMinPosition, point

成员 ptMaxPosition, point

成员 rcNormalPosition, rect

数据类型 point, 公开

成员 x, 整数型

成员 y, 整数型

数据类型 rect, 公开

成员 Left, 整数型

成员 top, 整数型

成员 Right, 整数型

成员 Bottom, 整数型

'获取控件的内容

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 控件的句柄你应该能获取到,所以不说了

1、如果是对话框,那么先得到那个对话框的窗口hwnd,然后通过传入id就会得到对应的编辑框句柄,然后得到文本:hwndnbsp;heditnbsp;=nbsp;getdlgitem(nbsp;hdlgwnd,nbsp;ueditidnbsp;);tcharnbsp;szbuf[max_path];::getwindowtext(nbsp;hedit,nbsp;szbuf,nbsp;max_pathnbsp;);2、如果是其他窗口,其他窗口创建时保存edit窗口的指针,然后通过这个指针得到文本内容:cstringnbsp;cstext;peditwnd-amp;gt;getwindowtext(cstext);

方法/步骤

启动易语言,新建Windows窗口程序。

选择‘程序’(数字1处)-->双击‘DLL命令’(数字2处)--> 右键单击如图标注(数字3处) ---选择‘新建DLL命令’。

输入如下图所示信息。途中所使用的DLL可以获取与指定窗口关联在一起的一个线程和进程标识符。其参数一填写指定窗口句柄,参数二填写一个变量,在使用这个命令后,在参数二中填写的变量,其值将自动变更为进程标识符。

双击启动窗口,写下如图所示代码,其输出值为本程序的进程ID,其值和使用任务管理器获得的值相同。

以上就是关于易语言如何获取外部窗口的组件全部的内容,包括:易语言如何获取外部窗口的组件、VB 如何获取外部程序文本框内容、在VC++MFC中,怎样从一个窗口获取另外一个窗口的编辑框的文本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/10156597.html

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

发表评论

登录后才能评论

评论列表(0条)

保存