1、取外部程序数据:如应用 系统截图的截图:

    窗口_取句柄 (, , “Microsoft-Windows-SnipperToolbar”, “截图工具”) 图片字节集 = 剪辑板_取位图数据A (窗口_取句柄 (, , “Microsoft-Windows-SnipperToolbar”, “截图工具”))

    应用方法说明:打开电脑自身截图软件—截图后——通过易语言 获得是取那个程序的句柄,然后将其结果从剪辑板取出。

    像QQ\360 截图同样。

    2、给外部程序输入内容
    外部程序窗口下N层组件如何调用:窗口层—组件层2—-组件层N—-编辑框层N+1
    1)样例说明:SAP 主窗口 —-下面有组件,要输入的编辑框是第四层组件—如何取句柄呢?
    image.png
    就是层层取句柄,例子如下:

    _.版本 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、如何实现 外部编辑框回车
    上面虽热在外部编辑框输入了内容,但是如何实现回车呢?
    要清楚,上面的只是往编辑框发送了 信息,但是其没有获得焦点,如果直接用模拟按键等,是没有反应的。
    因此,获取焦点:使用:窗口_置顶

    • 窗口_置顶 (父窗口句柄) ‘句柄上面已经获得
    • 模拟按键 (#回车键, , )

    image.png

    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