1、取外部程序数据:如应用 系统截图的截图:
窗口_取句柄 (, , “Microsoft-Windows-SnipperToolbar”, “截图工具”)
图片字节集 = 剪辑板_取位图数据A (窗口_取句柄 (, , “Microsoft-Windows-SnipperToolbar”, “截图工具”))
应用方法说明:打开电脑自身截图软件—截图后——通过易语言 获得是取那个程序的句柄,然后将其结果从剪辑板取出。
像QQ\360 截图同样。
2、给外部程序输入内容
外部程序窗口下N层组件如何调用:窗口层—组件层2—-组件层N—-编辑框层N+1
1)样例说明:SAP 主窗口 —-下面有组件,要输入的编辑框是第四层组件—如何取句柄呢?
就是层层取句柄,例子如下:
_.版本 2_
_.子程序 _按钮1_被单击_
_.局部变量 ckjb, 整数型_
_.局部变量 BJK, 整数型, , "0"_
_.局部变量 i, 整数型_
_.局部变量 SAP窗口句柄, 整数型_
_.局部变量 sap2级AFX, 整数型_
_.局部变量 SAP3级com句柄, 整数型_
_.局部变量 SAP4级EDIT句柄, 整数型_
<br />`_SAP窗口句柄 = 窗口_取句柄 (, , “SAP_FRONTEND_SESSION”, )_
‘主窗口1级的<br />
sap2级AFX = 窗口取句柄 (SAP窗口句柄, , “Afx:58340000:0:00010003:00000010:00000000”, )<br />
_SAP3级com句柄 = 窗口取句柄 (sap2级AFX, , “ComboBox”, )<br />
_SAP4级EDIT句柄 = 窗口取句柄 (SAP3级com句柄, , “Edit”, )<br />
.如果 (SAP4级EDIT句柄 ≠ 0)<br />
窗口置控件内容 (SAP4级EDIT句柄, 编辑框1.内容)`_ ‘开始输入编辑框内容_
_.否则_
_ 信息框 (“没有取得”, 0, , )_
2)解释
- 获得句柄:
SAP窗口句柄 = 窗口_取句柄 (父窗口句柄, , 类名, 标题名)
如:sap2级AFX = 窗口_取句柄 (SAP窗口句柄, , “Afx:58340000:0:00010003:00000010:00000000”, )
- 往编辑框发送信息 (下面两条都可以)
窗口_置控件内容 (SAP4级EDIT句柄, 编辑框1.内容)
‘开始输入编辑框内容,
文本_投递(窗口句柄,“投递的文本内容”)
发送信息其他方法
更改文本:
SetWindowTextA(编辑框句柄,”更改文本的”)
加入文本:
SendMessageA (编辑框句柄, 194,1, “加入的文本”)
3、如何实现 外部编辑框回车
上面虽热在外部编辑框输入了内容,但是如何实现回车呢?
要清楚,上面的只是往编辑框发送了 信息,但是其没有获得焦点,如果直接用模拟按键等,是没有反应的。
因此,获取焦点:使用:窗口_置顶
- 窗口_置顶 (父窗口句柄) ‘句柄上面已经获得
- 模拟按键 (#回车键, , )
4、补充 取句柄可以用进程名取
.版本 2
.支持库 spec
父窗口句柄 = 进程_名取句柄 (“saplogon.exe”)
调试输出 (父窗口句柄)
SAP的进程名为:
进程名: saplogon.exe
PID: 23732
用户名: gaohch3
内存使用: 139,308 K
线程: 29
命令行: “C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe”
描述: SAP Logon for Windows
公司: SAP, Walldorf
进程路径: C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe