天天看点

vbs 中使用 Win32Exts 扩展调用 ActiveX控件 示例

续接前文:

https://blog.csdn.net/tan_kaishuai/article/details/97898661

github 地址:

https://github.com/tankaishuai/win32exts_for_VBScript

本文主要演示如何使用 vbs 操作一个实际的ActiveX控件。

目标控件为“五虎大战”棋类小游戏,可在这里获取下载:

https://github.com/tankaishuai/My_ActiveX_DLL_MIX_DEV/blob/master/ActiveX/Tigers5.ocx

首先需要下载:win32exts.dll (v49.202.4.4 及以上版本),然后注册之:

   regsvr32  win32exts.dll

然后愉快地编写 vbs 脚本如下:

------------------------------------------------------------------------------------------------

' 初始化 win32exts

On Error Resume Next

Call win32exts.pop_edx()

If err Then

    Set win32exts = WScript.CreateObject("win32exts.win32atls")

End If

On Error GoTo 0

call win32exts.load_sym("*", "*")

' 设置控件显示位置为 {0, 0, 600, 600}

g_pBuf = win32exts.malloc(520)

call win32exts.write_value(g_pBuf, 8, 4, 600)

call win32exts.write_value(g_pBuf, 12, 4, 600)

'创建 ActiveX 控件

hwnd = 0      '11798276

ax = win32exts.NewActiveXControl_IE(win32exts.L("工程2.Tigers5"), hwnd, g_pBuf)

'调用 ax.Ax_ShowWindow(1) 显示控件

call win32exts.ax_call(ax, 0, win32exts.L("Ax_ShowWindow"), win32exts.L("d"), 1)

'调用 ax.put_CaptionLBL("修改后的数据") 修改控件属性

call win32exts.ax_put(ax, win32exts.L("CaptionLBL"), win32exts.L("a"), "修改后的数据")

'进入消息循环

call win32exts.SysMessageLoop()

------------------------------------------------------------------------------------------------

保存该 vbs 脚本为 test_ActiveX_Control.vbs ,并执行之:

c:\windows\syswow64\wscript   test_ActiveX_Control.vbs

显示效果如下:

vbs 中使用 Win32Exts 扩展调用 ActiveX控件 示例