#演示【大漠插件】在 MKScript 中的使用
int ret
int hwnd
#自定义标签
start:
#初始化大漠插件的对象: dm.dmsoft
int comId = com_object_new("dm.dmsoft")
println("comId:" + comId)
if comId == 0
alert("大漠插件还没有注册")
#暂停脚本
pause(mkFalse)
#跳转到标签: start 处开始运行
goto start
endif
#函数指针: 将大漠插件对象的"方法"转换为 MKScript 的函数
string (*dm_ver)() = com_object_get_function(comId, "Ver")
int (*dm_get_cursor_pos)(Variant *, Variant *) = com_object_get_function(comId, "GetCursorPos")
int (*dm_set_path)(string) = com_object_get_function(comId, "SetPath")
int (*dm_bind_window)(int, string, string, string, int) = com_object_get_function(comId, "BindWindow")
int (*dm_unbind_window)() = com_object_get_function(comId, "UnBindWindow")
int (*dm_capture)(int, int, int, int, string) = com_object_get_function(comId, "Capture")
int (*dm_key_down_char)(string) = com_object_get_function(comId, "KeyDownChar")
int (*dm_key_up_char)(string) = com_object_get_function(comId, "KeyUpChar")
println("大漠版本:" + dm_ver())
#设置目录
#ret = dm_set_path("F:\\大漠插件V3.1233")
#println("dm_set_path():" + ret)
#获取当前鼠标位置
Variant varX, varY #定义两个变体类型的变量
ret = dm_get_cursor_pos(varX, varY)
int x = variant_get_int(varX)
int y = variant_get_int(varY)
println("dm_get_cursor_pos():" + ret)
println("当前鼠标位置 x:" + x + ", y:" + y)
#查找窗口
hwnd = window_find("", "窗口的标题栏")
if hwnd == 0
alert("未找到窗口,请先确认指定的窗口是否显示")
#暂停脚本
pause(mkFalse)
#跳转到标签: start 处开始运行
goto start
endif
#先绑定窗口为后台模式
ret = dm_bind_window(hwnd, "dx2", "dx", "dx", 0)
println("dm_bind_window():" + ret)
#截图,注意:窗口不能最小化!!!
#测试时发现: 有的时候截图是一片空白图, 解决方案说是要把上面 dm_bind_window() 参数 dx2 改成 dx3
#ret = dm_capture(0, 0, 1300, 1300, "screen.bmp")
#println("dm_capture():" + ret)
#【后台键盘】:按下 'F' 键
ret = dm_key_down_char("F")
println("dm_key_down_char():" + ret)
#【后台键盘】:松开 'F' 键
ret = dm_key_up_char("F")
println("dm_key_up_char():" + ret)
#取消绑定后台窗口
ret = dm_unbind_window()
println("dm_unbind_window():" + ret)
println("测试完毕")
#暂停
pause(mkFalse)
goto start