点击这里给我发消息

MKScript 内置函数


MKScript 提供了鼠标、键盘相关的函数和一些功能性函数,其中鼠标相关的函数以 mouse_ 开头, 键盘相关的函数以 key_ 开头。
[参数]:带中括号的参数表示其为可选参数。
*参数:参数前面带有星号(*),表示函数内部可能会修改该参数的值,该参数必须以一个变量名的形式传递给函数。

 

鼠标函数

函数 描述
voidmouse_move_to(int x, int y) 鼠标移动到屏幕指定坐标位置 (x, y),示例: mouse_move_to(300, 200)
voidmouse_click(int x, int y) 鼠标点击左键,在屏幕指定坐标位置 (x, y)
voidmouse_click_right(int x, int y) 鼠标点击右键,在屏幕指定坐标位置 (x, y)
voidmouse_press_left(int x, int y) 鼠标按下左键,在屏幕指定坐标位置 (x, y)
voidmouse_press_right(int x, int y) 鼠标按下右键,在屏幕指定坐标位置 (x, y)
voidmouse_release_left(int x, int y) 鼠标松开左键,在屏幕指定坐标位置 (x, y)
voidmouse_release_right(int x, int y) 鼠标松开右键,在屏幕指定坐标位置 (x, y)
voidmouse_wheel_down(int x, int y[, int times]) 鼠标滚轮向下滚动,在屏幕指定坐标位置 (x, y),滚轮次数:times
voidmouse_wheel_up(int x, int y[, int times]) 鼠标滚轮向上滚动,在屏幕指定坐标位置 (x, y),滚轮次数:times
intmouse_get_cursor_at(int x, int y) 返回一个当鼠标移动到屏幕指定坐标位置 (x, y)时的指针形状。
intmouse_cursor_is_hand_at(int x, int y) 判断当鼠标移动到屏幕指定坐标位置 (x, y) 时,鼠标指针是否变成手状,是:返回1,不是:返回0
一般用于判断该位置是否是一个超链接。
voidmouse_get_position(int *x, int *y) 获取当前鼠标在屏幕逻辑分辨率下的坐标位置,坐标数据存放在参数(x, y)

提示:鼠标操作相关的函数,例如鼠标移动、点击等操作所使用的坐标是屏幕【逻辑分辨率】下的坐标。

 

键盘函数

函数 描述
voidkey_char(char c [, int times]) 键盘按下并松开一个键,可选参数 times 表示连续按下并松开的次数,示例:key_char('a', 1)
voidkey_press_char(char c) 键盘按下一个键,示例:key_press_char('y')
voidkey_release_char(char c) 键盘松开一个键,示例:key_release_char('y')
   
voidkey_code(int code [, int times]) 键盘按下并松开一个虚拟键码 code, 可选参数 times 表示连续按下并松开的次数。
voidkey_press_code(int code) 键盘按下一个虚拟键码 code,code 取值范围:1 ~ 254
voidkey_release_code(int code) 键盘松开一个虚拟键码 code
   
voidkey_ctrl_char(char c) 键盘按下并松开一个组合键 ctrl + '?',示例:key_ctrl_char('s')
voidkey_ctrl_code(int code) 键盘按下并松开一个组合键 ctrl + 虚拟键码(code),示例:key_ctrl_code(83)
voidkey_shift_char(char c) 键盘按下并松开一个组合键 shift + '?'
voidkey_shift_code(int code) 键盘按下并松开一个组合键 shift + 虚拟键码(code)
voidkey_alt_char(char c) 键盘按下并松开一个组合键 alt + '?',示例:key_alt_char('s')
voidkey_alt_code(int code) 键盘按下并松开一个组合键 alt + 虚拟键码(code),示例:key_alt_code(83)
voidkey_win_char(char c) 键盘按下并松开一个组合键 win + '?',示例:key_win_char('s')
voidkey_win_code(int code) 键盘按下并松开一个组合键 win + 虚拟键码(code),示例:key_win_code(83)
   
voidkey_ctrl_shift_char(char c) 键盘按下并松开一个组合键 ctrl + shift + '?'
voidkey_ctrl_shift_code(int code) 键盘按下并松开一个组合键 ctrl + shift + 虚拟键码(code)
voidkey_ctrl_alt_char(char c) 键盘按下并松开一个组合键 ctrl + alt + '?'
voidkey_ctrl_alt_code(int code) 键盘按下并松开一个组合键 ctrl + alt + 虚拟键码(code)
voidkey_alt_shift_char(char c) 键盘按下并松开一个组合键 alt + shift + '?'
voidkey_alt_shift_code(int code) 键盘按下并松开一个组合键 alt + shift + 虚拟键码(code)
   
voidkey_press_ctrl() 键盘按下 ctrl 键
voidkey_press_shift() 键盘按下 shift 键
voidkey_press_alt() 键盘按下 alt 键
voidkey_press_win() 键盘按下 win 键
   
voidkey_release_ctrl() 键盘松开 ctrl 键
voidkey_release_shift() 键盘松开 shift 键
voidkey_release_alt() 键盘松开 alt 键
voidkey_release_win() 键盘松开 win 键
   
voidkey_back_space([int times]) 键盘按下并松开 back 键(退格键) , times 表示连续按下并松开的次数。
voidkey_space([int times]) 键盘按下并松开 space 键(空格键) , times 表示连续按下并松开的次数。
voidkey_enter([int times]) 键盘按下并松开 enter 键(回车键) , times 表示连续按下并松开的次数。
voidkey_page_down([int times]) 键盘按下并松开 page down键(向下翻页键) , times 表示连续按下并松开的次数。
voidkey_page_up([int times]) 键盘按下并松开 page up键(向上翻页键) , times 表示连续按下并松开的次数。
voidkey_del() 键盘按下并松开 del 键(删除键)
voidkey_home() 键盘按下并松开 home 键
voidkey_end() 键盘按下并松开 end 键
voidkey_esc() 键盘按下并松开 esc 键
voidkey_f5() 键盘按下并松开 F5 键
voidkey_win() 键盘按下并松开 windows 键(键盘左下角 Ctrl 和 Alt 键之间的按键)
voidkey_tab() 键盘按下并松开 tab 键
   
voidkey_ctrl_a() 键盘按下并松开一个组合键 ctrl + a
voidkey_ctrl_c() 键盘按下并松开一个组合键 ctrl + c
voidkey_ctrl_x() 键盘按下并松开一个组合键 ctrl + x
voidkey_ctrl_v() 键盘按下并松开一个组合键 ctrl + v
voidkey_ctrl_f5() 键盘按下并松开一个组合键 ctrl + F5
voidkey_ctrl_z() 键盘按下并松开一个组合键 ctrl + z
voidkey_ctrl_n() 键盘按下并松开一个组合键 ctrl + n
voidkey_ctrl_o() 键盘按下并松开一个组合键 ctrl + o
voidkey_ctrl_w() 键盘按下并松开一个组合键 ctrl + w
voidkey_ctrl_s() 键盘按下并松开一个组合键 ctrl + s
voidkey_win_d() 键盘按下并松开一个组合键 windows键 + d
   
voidinput(string t [, int delay]) 输入一个字符串,支持中文,示例:input("你好,MKScript!")
delay:可选参数, 每次输入完一个字符后的延迟, 适用于在浏览器地址栏或搜索框中输入时使用。
voidinput_char(char c) 输入一个字符,不支持中文,示例:input_char('m')
voidinput_int(int v) 输入一个或一串数字, 示例:input_int(32)
voidinput_double(double v, int decimal) 输入一个浮点数,decimal 表示浮点数保留的小数位长度,示例:input_double(3.14, 2)

 

字符串函数

函数 描述
intlen(string text) 返回字符串的长度。一个英文字母长度:1,一个汉字长度:2
intindex_of(string text, string findText [, int startIndex]) 返回要查找的字符串在源字符串中第一次出现的索引,没找到返回 -1
intlast_index_of(string text, string findText [, int startIndex]) 返回要查找的字符串在源字符串中最后一次出现的索引,没找到返回 -1
stringmid(string text, int startIndex [, int len]) 返回一个新字符串,它是原字符串的一个子字符串。
stringreplace(string text, string findText, string replaceTo) 返回一个字符串,其中指定的字符串已经被替换为另一字符串。
stringleft(string text, int len) 返回字符串左侧指定数量的字符。
stringright(string text, int len) 返回字符串右侧指定数量的字符。
stringlcase(string text) 返回一个新字符串,其中所有大写字母已转换成小写字母。
stringucase(string text) 返回一个新字符串,其中所有小写字母已转换成大写字母。
stringltrim(string text) 返回一个新字符串,其中字符串左侧空格和 '\t', '\r', '\n' 字符已被删除。
stringrtrim(string text) 返回一个新字符串,其中字符串右侧空格和 '\t', '\r', '\n' 字符已被删除。
stringtrim(string text) 返回一个新字符串,其中字符串两侧空格和 '\t', '\r', '\n' 字符已被删除。
stringspace(int n) 返回一个长度为 n 个空格的字符串。
intis_int(string text) 判断一个字符串是不是整数格式,是:返回 1, 不是:返回 0
intis_numeric(string text) 判断一个字符串是不是数字格式,是:返回 1, 不是:返回 0
ArrayList<string>split(string text, string delimiter) 根据给定的分界符来拆分字符串,并返回执分后的字符串动态数组。
   
charchar_at(string text, int index) 返回字符串指定索引处的 char 值。
   
stringmd5(string text [, string toCharset]) 对字符串进行MD5加密并返回加密后的字符串。
text:需要加密的字符串。
toCharset:可选项,可以先对字符串按指定字符集进行转换后,再进行MD5加密。

 

数学函数

函数 描述
intabs(int v) 返回一个整数的绝对值。
doubleround(double v, int decimal) 返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。
Tmax(T m, T n) 返回 m, n 中较大的数。
Tmin(T m, T n) 返回 m, n 中较小的数。
intfloor(double v) 返回比参数 v 小的最大整数。
intceil(double v) 返回比参数 v 大的最小整数。
voidrandomize() 初始化随机数发生器。
doublernd() 返回 0 到 1 之间的一个浮点随机数。

 

日期时间函数

函数 描述
inttime() 返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
   
intyear() 返回当前日期的年。
intmonth() 返回当前日期的月。
intday() 返回当前日期的日。
inthour() 返回当前时间的小时。
intminute() 返回当前时间的分钟。
intsecond() 返回当前时间的秒。
   
stringget_now() 返回当前日期和时间,格式:2018-06-08 08:30:51
stringget_date() 返回当前日期,格式:2018-06-08
stringget_time() 返回当前时间,格式:08:30:51

 

屏幕颜色函数

函数 描述
intscreen_get_color_at(int x, int y) 返回当前屏幕指定坐标位置(x,y)的颜色值
intscreen_get_color_for_mouse_over_at(int x, int y) 该函数会直接移动鼠标到指定坐标位置(x,y)后,读取坐标(x,y)位置的颜色值。
适用于鼠标移动到指定位置,该位置的颜色会发生变化的情况,如网页中会变颜色的链接。
intscreen_find_color(int color, int *returnX, int *returnY) 全屏幕查找颜色值(color),如果找到,返回值: 1,坐标信息存放在 returnX, returnY变量中,如果没找到返回值:0, returnX = -1, returnY = -1
intscreen_find_color_from_area(int x, int y, int width, int height, int color, int *returnX, int *returnY) 从屏幕指定位置(x,y)指定的搜索区域(宽:width, 高height)查找颜色值(color) 。如果找到,返回值: 1,坐标信息存放在 returnX, returnY变量中,如果没找到返回值:0, returnX = -1, returnY = -1
   
voidscreen_get_colors(int x, int y, int w, int h, int *colors[][]) 获取当前屏幕指定坐标位置(x,y)右下角指定区域(w:宽,h:高)的颜色值。
colors:一个二维数组,用于存放指定区域的所有颜色值。
这个二维数组的正确定义:int colors[w][h]
适用于和screen_colors_equal()组合判断屏幕一个区域内的图像是否发生了变化。
intscreen_colors_equal(int x, int y, int w, int h, int *colors[][]) 判断当前屏幕指定坐标位置(x,y)右下角指定区域(w:宽,h:高)的颜色值是否与 colors[][] 这个二维数组存放的颜色值相同,相同返回:1,不同返回:0
colors:通过 screen_get_colors() 读取屏幕指定区域的颜色值并存放在这个二维数组中。
   
Bmpscreen_get_bmp(int x, int y, int width, int height) 从屏幕指定位置(x,y)截取指定大小(width, height)的位图并返回。
intscreen_bmp_equal(int x, int y, Bmp bmp) 判断一个位图对象(bmp)是否在屏幕指定位置(x, y)出现。是返回值:1, 不是返回值:0
intscreen_find_bmp(Bmp bmp, int *returnX, int *returnY [, double similarity]) 全屏幕查找位图(bmp),如果找到,返回值: 1,坐标信息存放在 returnX, returnY变量中,如果没找到返回值:0, returnX = -1, returnY = -1
similarity:可选参数,用于查找相以的位图,取值范围(0.01 - 1.0), 其中 1.0 表示图片需完全匹配。
intscreen_find_bmp_from_area(int x, int y, int width, int height, Bmp bmp, int *returnX, int *returnY [, double similarity]) 从屏幕指定位置(x,y)指定的搜索区域(宽:width, 高height)查找位图(bmp) 。如果找到,返回值: 1,坐标信息存放在 returnX, returnY变量中,如果没找到返回值:0, returnX = -1, returnY = -1
similarity:可选参数,用于查找相以的位图,取值范围(0.01 - 1.0), 其中 1.0 表示图片需完全匹配。
   
intscreen_get_physical_width() 获取当前屏幕物理分辨率的宽度,单位:像素
intscreen_get_physical_height() 获取当前屏幕物理分辨率的高度,单位:像素
   
intscreen_get_logical_width() 获取当前屏幕逻辑分辨率的宽度,单位:像素
intscreen_get_logical_height() 获取当前屏幕逻辑分辨率的高度,单位:像素
   
doublescreen_get_resolution_x_scale() 获取当前屏幕分辨率x轴的缩放比例
其值 = 物理分辨率的宽 / 逻辑分辨率的宽
doublescreen_get_resolution_y_scale() 获取当前屏幕分辨率y轴的缩放比例
其值 = 物理分辨率的高 / 逻辑分辨率的高
   
voidscreen_position_physical_to_logical(int x, int y, int *x2, int *y2) 物理分辨率坐标(x, y)转换成逻辑分辨率坐标, 保存到 (x2, y2)
voidscreen_position_logical_to_physical(int x, int y, int *x2, int *y2) 逻辑分辨率坐标(x, y)转换成物理分辨率坐标, 保存到(x2, y2)
   
intscreen_get_width() 获取当前屏幕的宽度,单位:像素
intscreen_get_height() 获取当前屏幕的高度,单位:像素
   
intscreen_get_desktop_width() 获取当前屏幕中【桌面】部分的宽度,不包括任务栏部分,单位:像素
intscreen_get_desktop_height() 获取当前屏幕中【桌面】部分的高度,不包括任务栏部分,单位:像素
   
intscreen_get_dpi() 获取当前屏幕的 DPI (DPI是指每英寸的像素)

提示:屏幕操作相关的函数,例如屏幕截图,屏幕找图所使用的坐标是屏幕【物理分辨率】下的坐标。

 

Bmp 位图函数

函数 描述
intbmp_file_read(string bmpFilePath, Bmp *bmp) 读取一个bmp文件(bmpFilePath), 读取成功返回值:1, 相关位图数据存放在变量bmp中, 加载失败返回值 < 1。
返回值:0 (文件无法打开)
返回值:-1 (文件格式错误)
intbmp_find_bmp(Bmp b1, Bmp b2, int *returnX, int *returnY [, double similarity]) 在位图(b1)中查找位图(b2),如果找到,返回值: 1,坐标信息存放在 returnX, returnY变量中,如果没找到返回值:0, returnX = -1, returnY = -1
similarity:可选参数,用于查找相以的位图,取值范围(0.01 - 1.0), 其中 1.0 表示图片需完全匹配。
intbmp_find_bmp_from_area(Bmp b1, int x, int y, int width, int height, Bmp b2, int *returnX, int *returnY [, double similarity]) 从位图(b1)指定位置(x,y)指定的搜索区域(宽:width, 高height)查找位图(b2) 。如果找到,返回值: 1,坐标信息存放在 returnX, returnY变量中,如果没找到返回值:0, returnX = -1, returnY = -1
similarity:可选参数,用于查找相以的位图,取值范围(0.01 - 1.0), 其中 1.0 表示图片需完全匹配。
bmpbmp_clone(Bmp bmp) 克隆一个位图(bmp)并返回。
voidbmp_reset(Bmp bmp) 将位图(bmp)当前占用的内存释放,并重新初始化。
intbmp_equal(Bmp b1, Bmp b2) 对比两个位图对象内容是否一样。如果相同,返回值:1, 不同,返回值:0
intbmp_get_width(Bmp bmp) 获取位图对象的宽。
intbmp_get_height(Bmp bmp) 获取位图对象的高。
intbmp_get_bit_count(Bmp bmp) 获取位图对象的颜色位。
intbmp_get_len(Bmp bmp) 获取位图对象的数据长度。 注意:这个返回值与bmp文件大小不是一回事。

 

窗口函数

函数 描述
voidwindow_mkscript_initial_size(int width, int height) 设置脚本运行窗口的宽与高,当设置的宽与高同时大于当前屏幕尺寸,窗口将最大化显示。该函数仅在窗口初始化显示的时候执行一次。
voidwindow_mkscript_initial_position(int x, int y) 初始化脚本运行窗口在屏幕上显示的位置。
注意:无论该函数写在脚本代码的什么位置,仅在窗口显示的时候执行一次。
intwindow_mkscript_get_handle() 返回MKScript窗口的句柄
   
intwindow_show(int hWnd, int cmdShow) 设置指定窗口的显示状态。

函数原型(Windows API): ShowWindow()

参数:
hWnd:窗口的句柄。
cmdShow:指定窗口如何显示,详见:https://baike.baidu.com/item/ShowWindow

返回值:
如果窗口之前可见,则返回值为非零。如果窗口之前被隐藏,则返回值为零。
intwindow_top(int hWnd, int status) 置顶/取消置顶指定的窗口。

参数:
hWnd:窗口的句柄。
status:status = 1( 窗口置顶),status = 0(取消窗口置顶)。

返回值:
如果函数成功,返回值为非零;如果函数失败,返回值为零。
intwindow_enable(int hWnd, int enable) 启用或禁用向指定窗口或控件的鼠标和键盘输入。禁用输入后,该窗口不会接收到诸如鼠标单击和按键之类的输入。启用输入后,窗口将接收所有输入。

函数原型(Windows API): EnableWindow()

参数:
hWnd:被启用/禁用的窗口句柄
enable:指示是启用还是禁用窗口。如果此参数为1,则启用窗口。如果参数为0,则禁用窗口。

返回值:
如果以前禁用了窗口,则返回值为非零。 如果该窗口先前未禁用,则返回值为零。
intwindow_set_position(int hWnd, int x, int y) 设置窗口的位置。

参数:
hWnd:窗口的句柄
x:窗口左侧的新位置
y:窗口顶部的新位置

返回值:
如果函数成功,返回值为非零;如果函数失败,返回值为零。
intwindow_set_size(int hWnd, int width, int height) 设置窗口的尺寸。

参数:
hWnd:窗口的句柄
width:窗口的新宽度,以像素为单位。
height:窗口的新高度,以像素为单位。

返回值:
如果函数成功,返回值为非零;如果函数失败,返回值为零。
intwindow_set_active(int hWnd) 激活一个窗口。

函数原型(Windows API): SetActiveWindow()

参数:
hWnd:窗口的句柄

返回值:
如果函数成功,则返回值是先前处于活动状态的窗口的句柄。
如果函数失败,则返回值为0。
intwindow_set_foreground(int hWnd) 将创建指定窗口的线程带入前台并激活该窗口。键盘输入直接指向窗口,并且为用户更改了各种视觉提示。系统向创建前景窗口的线程分配的优先级比向其他线程分配的优先级高。

函数原型(Windows API): SetForegroundWindow()

参数:
hWnd:窗口的句柄

返回值:
如果将窗口带到前台,则返回值为非零。
如果未将窗口带到前台,则返回值为零。
intwindow_set_focus(int hWnd) 将键盘焦点设置到指定的窗口。

参数:
hWnd:窗口的句柄

返回值:
如果函数成功,则返回值是以前具有键盘焦点的窗口的句柄。
如果windowHandle参数无效或失败,则返回值为0。
intwindow_set_pos(int hWnd, int hWndInsertAfter,int x, int y, int width, int height, int flags) 改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序。子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。

函数原型(Windows API): SetWindowPos()

参数详见: https://baike.baidu.com/item/SetWindowPos

返回值:
如果函数成功,则返回值为非零。如果函数失败,则返回值为零。
intwindow_set_text(int hWnd, string text) 更改指定窗口标题栏的文本(如果有的话)。如果指定的窗口是控件,则更改控件的文本。

参数:
hWnd:窗口的句柄
text:新标题或控件文本。

返回值:
如果函数成功,则返回值为非零。如果函数失败,则返回值为零。
voidwindow_set_button_checked(int hWnd, int status) 设置单选按钮或复选框的检查状态。

参数:
hWnd:窗口的句柄
status:检查状态。此参数可为下列值之一:
mkBST_CHECKED:将按钮状态设置为选中。
mkBST_INDETERMINATE:将按钮状态设置为灰色,表示不确定状态。仅当按钮具有BS_3STATE或BS_AUTO3STATE样式时,才使用此值。
mkBST_UNCHECKED:将按钮状态设置为清除。
intwindow_set_combo_box_selected_index(int hWnd, int index) 选择组合框列表中一个字符串。如有必要,列表会将字符串滚动到视图中。组合框的编辑控件中的文本将更改以反映新的选择,并且列表中的所有先前选择都将被删除。

参数:
hWnd:窗口的句柄
index:指定要选择的字符串的从零开始的索引。如果此参数为-1,则将删除列表中的任何当前选择,并清除编辑控件。

返回值:
如果成功,则返回值为所选项目的索引。如果index大于列表中的项目数,或者index为-1,则返回值为-1并清除选择。
intwindow_set_combo_box_selected_text(int hWnd, string text) 在组合框列表中搜索以指定字符串中的字符开头的项目。如果找到匹配的项目,则将其选中并复制到编辑控件。

参数:
hWnd:窗口的句柄
text:该字符串包含要搜索的字符。搜索不区分大小写,因此该字符串可以包含大写和小写字母的任意组合。

返回值:
如果找到了字符串,则返回值为所选项目的索引。如果搜索失败,则返回值为-1,并且当前选择不变。
intwindow_get(int hWnd, int cmd) 该函数返回与指定窗口有特定关系(如Z序或所有者)的窗口句柄。

函数原型(Windows API): GetWindow()

参数:
hWnd:窗口的句柄。基于uCmd参数的值,检索到的窗口句柄是与此窗口相对的。
cmd:指定窗口和要获取其句柄的窗口之间的关系

返回值:
如果函数成功,则返回值为窗口句柄。如果不存在与指定窗口具有指定关系的窗口,则返回值为0。
intwindow_get_window_rect(int hWnd, int *left, int *top, int *right, int *bottom) 返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。

函数原型(Windows API): GetWindowRect()

参数:
hWnd:窗口的句柄
left:左侧位置
top: 顶部位置
right:右侧位置
bottom:底部位置

返回值:
如果函数成功,则返回值为非零。如果函数失败,则返回值为零。
intwindow_get_client_rect(int hWnd, int *left, int *top, int *right, int *bottom) 获取窗口客户区的坐标。客户区坐标指定客户区的左上角和右下角。由于客户区坐标是相对窗口客户区的左上角而言的,因此左上角坐标为(0,0)。

函数原型(Windows API): GetClientRect()

参数:
hWnd:窗口的句柄
left:左侧位置
top: 顶部位置
right:右侧位置
bottom:底部位置

返回值:
如果函数成功,则返回值为非零。如果函数失败,则返回值为零。
intwindow_get_size(int hWnd, int *width, int *height) 返回指定窗口的边框矩形的尺寸。

参数:
hWnd:窗口的句柄
width:窗口的宽度
height:窗口的宽度

返回值:
如果函数成功,则返回值为非零。如果函数失败,则返回值为零。
intwindow_get_position_on_screen(int hWnd, int *x, int *y) 返回指定窗口在屏幕上的坐标。

参数:
hWnd:窗口的句柄
x:窗口位于屏幕上的x轴坐标
y:窗口位于屏幕上的y轴坐标

返回值:
如果函数成功,则返回值为非零。如果函数失败,则返回值为零。
intwindow_get_active() 该函数可以获得与调用线程的消息队列相关的活动窗口的窗口句柄。

函数原型(Windows API): GetActiveWindow()

返回值:
返回值是与调用线程的消息队列相关的活动窗口的句柄。若执行失败,返回0。
intwindow_get_foreground() 获取一个前台窗口的句柄(用户当前工作的窗口)。该系统分配给其他线程比它的前台窗口的线程创建一个稍微更高的优先级。

函数原型(Windows API): GetForegroundWindow()

返回值:
返回值是前景窗口的句柄。在某些情况下,例如某个窗口失去激活状态,前景窗口可以为0。
intwindow_get_focus() 获取具有键盘焦点的窗口的句柄。

返回值:
返回值是具有键盘焦点的窗口的句柄。如果没有与键盘焦点相关联的窗口,则返回值为0。
intwindow_get_from_point(int x, int y) 获得包含指定点的窗口的句柄。

函数原型(Windows API): WindowFromPoint()

参数:
x:屏幕x坐标
y:屏幕y坐标

返回值:
返回值为包含该坐标的窗口的句柄。如果包含指定点的窗口不存在,返回值为0。如果该点在静态文本控件之上,返回值是在该静态文本控件的下面的窗口的句柄。
ArrayList<int>window_get_child_list(int hWnd) 获取一个父窗口的所有子窗口句柄列表。

参数:
hWnd:父窗口的句柄

返回值:
返回父窗口的所有子窗口句柄列表,返回值类型:ArrayList<int>
ArrayList<int>window_get_top_level_list() 获取屏幕上的所有顶层窗口句柄列表。

返回值:
返回屏幕上的所有顶层窗口句柄列表,返回值类型:ArrayList<int>
intwindow_get_combo_box_selected_index(int hWnd) 获取组合列表框中当前所选项目的索引(如果有)。

参数:
hWnd:组合列表框窗口的句柄

返回值:
返回值是当前所选项目的从零开始的索引。如果未选择任何项目,则为-1。
intwindow_get_parent(int hWnd) 返回一个指定子窗口的父窗口句柄。

函数原型(Windows API): GetParent()

参数:
hWnd:子窗口的句柄

返回值:
如果窗口是子窗口,则返回值是父窗口的句柄。如果该窗口是具有WS_POPUP样式的顶级窗口,则返回值是所有者窗口的句柄。如果函数失败,则返回值为0。
intwindow_get_id(int hWnd) 获取指定控件的ID号。

函数原型(Windows API): GetDlgCtrlID()

参数:
hWnd:控件的句柄

返回值:
如果函数成功,则返回值是控件的标识符(ID号)。如果函数失败,则返回值为零。
stringwindow_get_class_name(int hWnd) 获取指定窗口所属的类的名称。

函数原型(Windows API): GetClassName()

参数:
hWnd:窗口的句柄

返回值:
如果函数成功,则返回值是窗口所属的类字符串。如果函数失败,则返回值是一个空字符串。
stringwindow_get_text(int hWnd) 如果指定的是一个窗口,则返回窗口标题栏的文本。如果指定的窗口是控件,则返回控件的文本。

参数:
hWnd:窗口的句柄

返回值:
如果函数成功,则返回值是窗口标题栏文本或控件的文本。如果函数失败,则返回值是一个空字符串。
intwindow_is_iconic(int hWnd) 确定指定的窗口是否最小化(图标)。

函数原型(Windows API): IsIconic()

参数:
hWnd:窗口的句柄

返回值:
如果窗口未最小化,返回值为零;如果窗口已最小化,返回值为非零。
intwindow_is_zoomed(int hWnd) 确定窗口是否最大化。

函数原型(Windows API): IsZoomed()

参数:
hWnd:窗口的句柄

返回值:
如果窗口已最大化,则返回值为非零;如果窗口未最大化,则返回值为零。
intwindow_is_visible(int hWnd) 确定指定窗口的可见性状态。

函数原型(Windows API): IsWindowVisible()

参数:
hWnd:窗口的句柄

返回值:
如果指定的窗口可见,返回值为非零;如果指定的窗口不可见,返回值为零。
即使窗口处于最小化状态或被其他窗口遮盖,函数返回值也为非零。
intwindow_is_enabled(int hWnd) 判断指定的窗口是否允许接受键盘或鼠标输入。

函数原型(Windows API): IsWindowEnabled()

参数:
hWnd:窗口的句柄

返回值:
若窗口允许接受键盘或鼠标输入,则返回非0值,若窗口不允许接受键盘或鼠标输入,则返回值为0。
intwindow_is_button_checked(int hWnd) 获取单选按钮或复选框的检查状态。

参数:
hWnd:窗口的句柄

返回值:
如果按钮被选中,返回值:1,如果按钮呈灰色,指示不确定的状态,返回值:2,如果按钮未选中,返回值:0
intwindow_screen_to_client(int hWnd, int *x, int *y) 将屏幕坐标转换成客户区坐标。

函数原型(Windows API): ScreenToClient()

参数:
hWnd:窗口的句柄
x:屏幕x坐标
y:屏幕y坐标

返回值:
如果函数成功,则返回值为非零。如果函数失败,则返回值为零。
intwindow_client_to_screen(int hWnd, int *x, int *y) 将客户区坐标转换成屏幕坐标。

函数原型(Windows API): ClientToScreen()

参数:
hWnd:窗口的句柄
x:客户区x坐标
y:客户区y坐标

返回值:
如果函数成功,则返回值为非零。如果函数失败,则返回值为零。
intwindow_find(string className, string windowName) 检索顶级窗口的句柄,该窗口的类名和窗口名与指定的字符串匹配。此功能不搜索子窗口。此功能不执行区分大小写的搜索。要从指定的子窗口开始搜索子窗口,请使用window_find_ex函数。

函数原型(Windows API): FindWindow()

参数:
className:指定窗口类名称。如果className是一个空字符串,它将找到标题与windowName参数匹配的任何窗口。
windowName:窗口名称(窗口标题)。如果此参数为空字符串,则所有窗口名称均匹配。

返回值:
如果函数成功,则返回值是具有指定类名和窗口名的窗口的句柄。
如果函数失败,则返回值为0。
intwindow_find_ex(int hWndParent, int hWndChildAfter, string className, string windowName) 检索其类名和窗口名与指定的字符串匹配的窗口的句柄。该功能搜索子窗口,从指定子窗口之后的子窗口开始。此功能不执行区分大小写的搜索。

函数原型(Windows API): FindWindowEx()

参数:
hWndParent:父窗口要搜索其子窗口的句柄。
如果hwndParent为0,则该函数使用桌面窗口作为父窗口。该功能在作为桌面子窗口的窗口之间搜索。
如果hwndParent为mkHWND_MESSAGE(-3),则该函数搜索所有仅消息窗口。

hWndChildAfter:子窗口的句柄。
搜索从Z顺序的下一个子窗口开始。子窗口必须是hwndParent的直接子窗口,而不仅仅是后代窗口。
如果hwndChildAfter为0,则搜索从hwndParent的第一个子窗口开始。
请注意,如果hwndParent和hwndChildAfter均为0,则该函数将搜索所有顶级窗口和仅消息窗口。

className:指定窗口类名称。如果className是一个空字符串,它将找到标题与windowName参数匹配的任何窗口。

windowName:窗口名称(窗口标题)。如果此参数为空字符串,则所有窗口名称均匹配。

返回值:
如果函数成功,则返回值是具有指定类和窗口名称的窗口的句柄。
如果函数失败,则返回值为0。
intwindow_send_message(int hWnd, int msg, int wParam, int lParam) 将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。要将消息发布到线程的消息队列中并立即返回,请使用window_post_message函数。

函数原型(Windows API): SendMessage()

参数:
hWnd:窗口的句柄,其窗口过程将接收到该消息。如果此参数为mkHWND_BROADCAST(65535),则消息将发送到系统中的所有顶级窗口,包括禁用或不可见的无主窗口,重叠的窗口和弹出窗口;但是消息不会发送到子窗口。
msg:要发送的消息。
wParam:指定附加的消息特定信息。
lParam:指定附加的消息特定信息。

返回值:
返回值指定消息处理的结果;这取决于发送的消息。
intwindow_send_message_timeout(int hWnd, int msg, int wParam, int lParam, int flags, int timeout, int *result) 将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,并且,如果指定的窗口属于不同的线程,直到窗口程序处理完消息或指定的超时周期结束函数才返回。如果接收消息的窗口和当前线程属于同一个队列,窗口程序立即调用,超时值无用。

函数原型(Windows API): SendMessageTimeout()

参数:
hWnd:窗口的句柄,其窗口过程将接收到该消息。如果此参数为mkHWND_BROADCAST(65535),则消息将发送到系统中的所有顶级窗口,包括禁用或不可见的无主窗口,重叠的窗口和弹出窗口;但是消息不会发送到子窗口。
msg:要发送的消息。
wParam:指定附加的消息特定信息。
lParam:指定附加的消息特定信息。
flags:指定如何发送消息。此参数可为下列值的组合:
mkSMTO_ABORTIFHUNG:如果接收进程处于“hung”状态,不等待超时周期结束就返回。
mkSMTO_BLOCK:阻止调用线程处理其他任何请求,直到函数返回。
mkSMTO_NORMAL:调用线程等待函数返回时,不被阻止处理其他请求。
mkSMTO_NOTIMEOUTIFNOTHUNG:Windows 95及更高版本:如果接收线程没被挂起,当超时周期结束时不返回。
timeout:为超时周期指定以毫秒为单位的持续时间。如果该消息是一个广播消息,每个窗口可使用全超时周期。例如,如果指定5秒的超时周期,有3个顶层窗回未能处理消息,可以有最多15秒的延迟。
result:指定消息处理的结果,依赖于所发送的消息。

返回值:
如果函数调用成功,返回非零值。如果函数调用失败,或超时,返回值是零。
intwindow_post_message(int hWnd, int msg, int wParam, int lParam) 将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。

函数原型(Windows API): PostMessage()

参数:
hWnd:窗口的句柄,其窗口过程将接收到该消息。如果此参数为mkHWND_BROADCAST(65535),则消息将发送到系统中的所有顶级窗口,包括禁用或不可见的无主窗口,重叠的窗口和弹出窗口;但是消息不会发送到子窗口。
msg:要发送的消息。
wParam:指定附加的消息特定信息。
lParam:指定附加的消息特定信息。

返回值:
返回值指定消息处理的结果;这取决于发送的消息。
intmake_wparam(int low, int high) 创建一个值,用作消息中的 wParam参数。

函数原型: C 语言中的 MAKEWPARAM 宏。

参数:
low:低位字。
high:高位字。

返回值:
返回值是一个32位值。
intmake_lparam(int low, int high) 创建一个值,用作消息中的 lParam参数。

函数原型: C 语言中的 MAKELPARAM 宏。

参数:
low:低位字。
high:高位字。

返回值:
返回值是一个32位值。

 

文件函数

函数 描述
intfile_read(string filePath, string *body [, string charset]) 读取一个文件内容。
filePath:文件的完整路径。
body:存放读取的文件内容。
charset:可选参数,指定文件原编码,如: utf-8
返回值:文件读取成功返回 1,文件读取失败返回 0,body 中存放相关错误信息。
intfile_write(string filePath, string body, string writeMode [, string charset]) 将数据写入到文字。
filePath:文件的完整路径。
body:准备写入的文件内容。
writeMode:写入模式,如需将写入的数据追加到文件尾,请填写 "a", 反之可填写一个空白的字符串 ""
charset:可选参数,指定文件编码,如: utf-8
返回值:文件写入成功返回 1,文件写入失败返回 0,可通过 get_last_error_message() 获取相关错误信息。
intfile_exist(string filePath) 检查文件路径是否存在。
filePath:文件的完整路径。
返回值:文件路径存在返回 1。文件路径不存在返回 0

 

类型转换函数

函数 描述
intstoi(string text) 将一个字符串转换成整数并返回,示例:int c = stoi("123")
longstol(string text) 将一个字符串转换成长整数并返回,示例:long = stol("123")
floatstof(string text) 将一个字符串转换成单精度浮点数并返回,示例:float v = stof("1.23")
doublestod(string text) 将一个字符串转换成双精度浮点数并返回,示例:double v = stod("1.23")
   
longitol(int v) 将一个整数转换成长整数并返回,示例:long v = itol(123)
floatitof(int v) 将一个整数转换成单精度浮点数并返回,示例:float v = itof(123)
doubleitod(int v) 将一个整数转换成双精度浮点数并返回,示例:double v = itod(123)
stringitos(int v) 将一个整数转换成字符串并返回,示例:string t = itos(123)
   
intltoi(int v) 将一个长整数转换成整数并返回,示例:int v = ltoi(123)
floatltof(int v) 将一个长整数转换成单精度浮点数并返回,示例:float v = ltof(123)
doubleltod(int v) 将一个长整数转换成双精度浮点数并返回,示例:double v = ltod(123)
stringltos(int v) 将一个长整数转换成字符串并返回,示例:string t = ltos(123)
   
intftoi(float v) 将一个单精度浮点数转换成整数并返回,示例:int c = ftoi(123.45)
longftol(float v) 将一个单精度浮点数转换成长整数并返回,示例:long c = ftol(123.45)
doubleftod(float v) 将一个单精度浮点数转换成双精度浮点数并返回,示例:float c = ftod(123.45)
stringftos(float v, int decimal) 将一个单精度浮点数转换成字符串并返回,decimal 表示浮点数保留的小数位长度。
   
intdtoi(double v) 将一个双精度浮点数转换成整数并返回,示例:int c = dtoi(123.45)
longdtol(double v) 将一个双精度浮点数转换成长整数并返回,示例:long c = dtol(123.45)
floatdtof(double v) 将一个双精度浮点数转换成单精度浮点数并返回,示例:float c = dtof(123.45)
stringdtos(double v, int decimal) 将一个双精度浮点数转换成字符串并返回,decimal 表示浮点数保留的小数位长度。

 

动态数组函数

函数 描述
voidarraylist_add(ArrayList<T> list, <T> item) 将指定的元素添加到动态数组的尾部。
voidarraylist_insert(ArrayList<T> list, int index, <T> item) 将指定的元素插入动态数组中的指定位置。
intarraylist_index_of(ArrayList<T> list, <T> item) 返回动态数组中首次出现的指定元素的索引,如果动态数组中找不到该元素,则返回 -1
intarraylist_last_index(ArrayList<T> list, <T> item) 返回动态数组中最后一次出现的指定元素的索引,如找不到该元素,则返回 -1
intarraylist_contains(ArrayList<T> list, <T> item) 如果动态数组中包含指定的元素,则返回 1,反之返回 0
intarraylist_remove(ArrayList<T> list, <T> item) 移除动态数组中首次出现的指定元素(如果存在返回1, 反之返回 0)
<T>arraylist_remove_index(ArrayList<T> list, int index) 移除动态数组中指定位置上的元素,并返回移除的元素。
<T>arraylist_set(ArrayList<T> list, int index, <T> item) 用指定的元素替代动态数组中指定位置上的元素。
<T>arraylist_get(ArrayList<T> list, int index) 返回动态数组中指定位置上的元素。
intarraylist_get_size(ArrayList<T> list) 返回动态数组中的元素数量。
voidarraylist_clear(ArrayList<T> list) 移除动态数组中的所有元素。

 

哈希表函数

函数 描述
Vhashmap_put(HashMap<K,V> map, <K> key, <V> value) 在此映射中关联指定值与指定键。如果该映射以前包含了一个该键的映射关系,则旧值被替换。
Vhashmap_get(HashMap<K,V> map, <K> key) 返回指定键所映射的值;如果对于该键来说,此映射不包含任何映射关系,则返回(V)的类型默认值。
inthashmap_contains_key(HashMap<K,V> map, <K> key) 如果此映射包含对于指定键的映射关系,则返回 1, 反之返回0
inthashmap_contains_value(HashMap<K,V> map, <V> value) 如果此映射将一个或多个键映射到指定值,则返回 1, 反之返回0
Vhashmap_remove(HashMap<K,V> map, <K> key) 从此映射中移除指定键的映射关系(如果存在)。
返回与 key 关联的旧值;如果 key 没有任何映射关系,则返回(V)的类型默认值。
inthashmap_get_size(HashMap<K,V> map) 返回此映射中的键-值映射关系数。
voidhashmap_clear(HashMap<K,V> map) 从此映射中移除所有映射关系。此调用返回后,映射将为空。
Iterator<K>hashmap_keys(HashMap<K,V> map) 返回此映射中所包含的键的 Iterator<K> 迭代器。
Iterator<V>hashmap_values(HashMap<K,V> map) 返回此映射所包含的值的 Iterator<V> 迭代器。

 

迭代器函数

函数 描述
intiterator_has_next(Iterator<T> iterator) 如果仍有元素可以迭代,则返回 1, 反之返回 0
Viterator_next(Iterator<T> iterator) 返回迭代的下一个元素。
voiditerator_jump_origin(Iterator<T> iterator) 迭代器恢复到原点,使迭代器可重复使用。
voiditerator_clear(Iterator<T> iterator) 移除迭代器中所有元素。

示例:

HashMap<int, string> map

hashmap_put(map, 1, "one")
hashmap_put(map, 2, "two")
hashmap_put(map, 3, "three")

Iterator<int> iKeys = hashmap_keys(map)
loop iterator_has_next(iKeys) == mkTrue
    println("key:" + iterator_next(iKeys))
endloop

println("")

Iterator<string> iValues = hashmap_values(map)
loop iterator_has_next(iValues) == mkTrue
    println("value:" + iterator_next(iValues))
endloop

 

HTTP 请求函数

函数 描述
inthttp_get(string url, string *returnBody [, string fromCharset]) 发起 http get 请求。
url:请求的网址, 仅支持 http, 暂不支持 https
returnBody:string 变量名, 用于存放http请求返回的内容。
fromCharset:可选项,http 请求返回的内容采用的字符集,例如:"utf-8"
返回值:1(http 状态码: 200), 0(http 状态码 != 200), -1(网络错误)
stringurl_encode(string text [, string toCharset]) 将字符串以URL编码,用于编码处理。
text:需要进行URL编码的字符串。
toCharset:可选项,将 text 转换成指定字符集后再进行URL编码,例如:"utf-8"
返回值:返回URL编码后的字符串。

 

本地存储函数

函数 描述
intstorage_set(string key, string value) 用于本地存储数据,结构: key = value,单个 key 最多可存储 8192 个字符。
key:关键词
value:值
返回值:1(成功), 0(失败)
stringstorage_get(string key) 读取本地存储的数据。
key:关键词
返回值:读取 key 对应的值,如果 key 不存在,或读取失败返回空白字符串。

示例:

int status = storage_set("user", "test")
if status == 1
    storage_set("age", "16")
    println("user:" + storage_get("user"))

    #将string(字符串)转换成int(整数)
    int age = stoi(storage_get("age"))

    if age >= 16
        println("age:" + age)
    endif
endif

 

剪贴板函数

函数 描述
intclipboard_set_text(string text) 把指定文本(text)放入剪贴板中。
stringclipboard_get_text() 返回从剪贴板中获取的文本内容。

 

对话框函数

函数 描述
voidalert(string t) 弹出一个提示对话框。示例: alert("你好,MKScript")
intconfirm(string text [, int type]) 弹出一个确认对话框,参数 type :
mkOkCancel (1) 显示【确定】,【取消】按钮。
mkYesNo (4) 显示【是】,【否】按钮。
mkYesNoCancel (3) 显示【是】,【否】,【取消】按钮。
返回值有: mkOk (1),mkCancel (2),mkYes (6),mkNo (7)
intprompt(string text, string *value [, int type]) 弹出一个输入对话框,参数 type:
mkPrompt_String (1) 在对话框中接受输入任意字符。
mkPrompt_Char (2) 在对话框中只接受输入1个字符。
mkPrompt_Int (3) 在对话框中只接受输入一个整数。
mkPrompt_Numeric (4) 在对话框中只接受输入一个数。
返回值有: mkOk (1),mkCancel (2)

 

DLL动态链接库函数

函数 描述
intdll_load(string dllFilePath) 加载指定的动态链接库文件,返回值:成功则返回库模块的句柄,零表示失败。
intdll_free(int dllHandle) 释放指定的动态链接库,返回值:非零表示成功,零表示失败。
void *dll_get_function(string funcName [, int dllHandle]) 获取在动态链接库(DLL)中的输出函数地址,返回值类型:函数指针。
funcName:函数名
dllHandle:可选参数,可选择从指定库模块句柄中获取函数地址。
返回值:
如果函数调用成功,返回值是DLL中的输出函数地址。
如果函数调用失败,返回值是0。得到进一步的错误信息,调用函数get_last_error()。

示例:

#加载DLL动态链接库,变量 dllHandle 存放的是DLL动态链接库的句柄

int dllHandle = dll_load("D:\\mydll.dll")
println("dllHandle:" + dllHandle)

#定义函数指针变量,指向DLL动态链接库中一个函数
int (*myMax)(int, int) = dll_get_function("Max")

#调用函数指针,也就是调用其指向的DLL库函数
int v = myMax(1, 2)

#输出库函数运行后的返回值
println("v:" + v)

#释放DLL动态链接库句柄
dll_free(dllHandle)

 

COM组件对象函数

函数 描述
intcom_object_new(string objectName [,string iid]) 创建COM对象并返回对象句柄。
iid:可选参数,可指定COM对象的接口。
返回值:成功则返回COM对象句柄,零表示失败。
intcom_object_new_from_dll(int dllHandle, string CLSID [, string iid]) 通过已加载的DLL动态链接库句柄和指定的CLSID来创建COM对象并返回对象句柄。
iid:可选参数,可指定COM对象的接口。
返回值:成功则返回COM对象句柄,零表示失败。
void * com_object_get_function(int comObjectHandle, string funcName) 获取在COM组件对象中的函数地址,返回值类型:函数指针。
comObjectHandle:COM对象句柄。
funcName:函数名
如果函数调用成功,返回值是COM对象中的函数地址。
如果函数名不存在,程序会崩溃。
voidcom_object_set_int(int comObjectHandle, string propertyName, int v) 设置COM对象的属性值。
comObjectHandle:COM对象句柄。
propertyName:属性名
v: 整型属性值
voidcom_object_set_long(int comObjectHandle, string propertyName, long v) 设置COM对象的属性值。
comObjectHandle:COM对象句柄。
propertyName:属性名
v: 长整型属性值
voidcom_object_set_float(int comObjectHandle, string propertyName, float v) 设置COM对象的属性值。
comObjectHandle:COM对象句柄。
propertyName:属性名
v: 单精度浮点型属性值
voidcom_object_set_double(int comObjectHandle, string propertyName, double v) 设置COM对象的属性值。
comObjectHandle:COM对象句柄。
propertyName:属性名
v: 双精度浮点型属性值
voidcom_object_set_string(int comObjectHandle, string propertyName, string v) 设置COM对象的属性值。
comObjectHandle:COM对象句柄。
propertyName:属性名
v: 字符串型属性值
intcom_object_get_int(int comObjectHandle, string propertyName) 获取COM对象的属性值,返回值类型:int
comObjectHandle:COM对象句柄。
propertyName:属性名
longcom_object_get_long(int comObjectHandle, string propertyName) 获取COM对象的属性值,返回值类型:long
comObjectHandle:COM对象句柄。
propertyName:属性名
floatcom_object_get_float(int comObjectHandle, string propertyName) 获取COM对象的属性值,返回值类型:float
comObjectHandle:COM对象句柄。
propertyName:属性名
doublecom_object_get_double(int comObjectHandle, string propertyName) 获取COM对象的属性值,返回值类型:double
comObjectHandle:COM对象句柄。
propertyName:属性名
stringcom_object_get_string(int comObjectHandle, string propertyName) 获取COM对象的属性值,返回值类型:string
comObjectHandle:COM对象句柄。
propertyName:属性名
voidcom_object_free(int comObjectHandle) 释放COM对象。
comObjectHandle:COM对象句柄。

示例:

#加载COM组件对象,变量 comObjectHandle 存放的是COM对象句柄

int comObjectHandle = com_object_new("MyCom.object")
println("comObjectHandle:" + comObjectHandle)

#定义函数指针变量,指向COM对象中一个函数
int (*myMax)(int, int) = com_object_get_function(comObjectHandle, "Max")

#调用函数指针,也就是调用其指向的COM对象中的函数
int v = myMax(1, 2)

#输出函数运行后的返回值
println("v:" + v)

#释放COM对象句柄
com_object_free(comObjectHandle)

 

 

 

 

 

硬件访问函数

函数 描述
stringhardware_get_cpu() 获取电脑cpu信息,例如:9-14857-6-2(体系结构-版本-级别-核心数量)
stringhardware_get_mac() 获取网卡地址信息,例如:0-1A-92-35-E4-D0

 

其他函数

函数 描述
voidsleep(int millisecond) 延迟脚本的运行,单位是毫秒。示例:sleep(1500)
voidpause(int isAlert) 暂停脚本的运行,参数:isAlert 表示是否弹出【暂停对话框】,取值:0(不弹) 或 1(弹出)。
   
voidprint(T v) 在 MKScript 运行界面的信息框中输出一个字符串。示例:print("你好\r\nMKScript")
voidprintln(T v) 在 MKScript 运行界面的信息框中输出一个字符串并换行。示例:println("你好,MKScript")
voidprint_double(double v, int decimal) 在 MKScript 运行界面的信息框中输出一个浮点数。示例:print_double(3.14, 2)
其中:decimal 表示保留的小数位。
   
voidconfig_paused_show_alert(int status) 配置当MKScript脚本暂停运行时,是否需要弹出暂停提示对话框。
MKScript默认当脚本暂停运行时,会弹出暂停提示对话框,可通过该函数取消弹出提示对话框: config_paused_show_alert(mkFalse)
voidconfig_stopped_show_alert(int status) 配置当MKScript脚本中止运行时,是否需要弹出中止提示对话框。
MKScript默认当脚本中止运行时,会弹出中止提示对话框,可通过该函数取消弹出提示对话框: config_stopped_show_alert(mkFalse)
voidconfig_ended_show_alert(int status) 配置当MKScript脚本运行结束时,是否需要弹出结束提示对话框。
MKScript默认当脚本运行结束时,会弹出结束提示对话框,可通过该函数取消弹出提示对话框: config_ended_show_alert(mkFalse)
   
voidcls() 将 MKScript 运行界面的信息框中的所有内容清空,类似清屏的作用。
   
intget_last_error() 该函数返回最近的错误代码值。
stringget_last_error_message([int errorID]) 该函数返回最近的错误代码值对应的错误描述信息。
errorID:可选参数,错误代码值。
   
voidplay_alert_sound(int times) 播放提示音。在脚本运行过程中,当符合一定的条件时,可发出提示音来提示用户。也可以在脚本运行快要结束的时候,发出提示音告诉用户,脚本已结束运行。

参数:times 表示要循环播放提示音的次数,如果值为 -1,表示一直循环播放提示音。
voidstop_alert_sound() 停止播放提示音。
   
voidselect_text(int x, int y, int x2, int y2) 选择一段可选文本,选择区域从坐标(x, y) 到 (x2, y2)
voidselect_object(int x, int y, int x2, int y2) 选择鼠标可选对象列表,选择区域从坐标(x, y) 到 (x2, y2)
   
voidhotkey_pause_or_continue_code(int code) 设置 MKScript 脚本运行过程中的【暂停/继续运行】快捷键。
示例:hotkey_pause_or_continue_code(mkVK_F9)
voidhotkey_pause_or_continue_ctrl_char(char c) 设置 MKScript 脚本运行过程中的【暂停/继续运行】快捷键。
示例:hotkey_pause_or_continue_ctrl_char('y')
voidhotkey_pause_or_continue_shift_char(char c) 设置 MKScript 脚本运行过程中的【暂停/继续运行】快捷键。
示例:hotkey_pause_or_continue_shift_char('y')
voidhotkey_pause_or_continue_alt_char(char c) 设置 MKScript 脚本运行过程中的【暂停/继续运行】快捷键。
示例:hotkey_pause_or_continue_alt_char('y')
voidhotkey_pause_or_continue_ctrl_alt_char(char c) 设置 MKScript 脚本运行过程中的【暂停/继续运行】快捷键。
示例:hotkey_pause_or_continue_ctrl_alt_char('y')
   
voidhotkey_stop_code(int code) 设置 MKScript 脚本运行过程中的【中止运行】快捷键。
示例:hotkey_stop_code(mkVK_F3)
voidhotkey_stop_ctrl_char(char c) 设置 MKScript 脚本运行过程中的【中止运行】快捷键。
示例:hotkey_stop_ctrl_char('t')
voidhotkey_stop_shift_char(char c) 设置 MKScript 脚本运行过程中的【中止运行】快捷键。
示例:hotkey_stop_shift_char('t')
voidhotkey_stop_alt_char(char c) 设置 MKScript 脚本运行过程中的【中止运行】快捷键。
示例:hotkey_stop_alt_char('t')
voidhotkey_stop_ctrl_alt_char(char c) 设置 MKScript 脚本运行过程中的【中止运行】快捷键。
示例:hotkey_stop_ctrl_alt_char('t')
   
doubleversion() 返回当前MKScript脚本语言的版本号。
voidexit() 中止脚本的运行,程序退出,脚本中止时不弹出提示对话框。

 

系统常量

常量名 类型
mkTrue int 1
mkFalse int 0
     
mkNull int 0
     
mkOk int 1
mkCancel int 2
mkYes int 6
mkNo int 7
     
mkOkCancel int 1
mkYesNo int 4
mkYesNoCancel int 3
     
mkPrompt_String int 0
mkPrompt_Char int 1
mkPrompt_Int int 2
mkPrompt_Numeric int 3
     
mkVK_Back int 8
mkVK_Tab int 9
mkVK_Clear int 12
mkVK_Enter int 13
mkVK_Shift int 16
mkVK_Ctrl int 17
mkVK_Alt int 18
mkVK_CapsLock int 20
mkVK_Esc int 27
mkVK_Space int 32
mkVK_PageUp int 33
mkVK_PageDown int 34
mkVK_End int 35
mkVK_Home int 36
mkVK_Left int 37
mkVK_Up int 38
mkVK_Right int 39
mkVK_Down int 40
mkVK_Snapshot int 44
mkVK_Insert int 45
mkVK_Delete int 46
mkVK_Win int 91
mkVK_F1 int 112
mkVK_F2 int 113
mkVK_F3 int 114
mkVK_F4 int 115
mkVK_F5 int 116
mkVK_F6 int 117
mkVK_F7 int 118
mkVK_F8 int 119
mkVK_F9 int 120
mkVK_F10 int 121
mkVK_F11 int 122
mkVK_F12 int 123
     
mkCr string "\r"
mkLf string "\n"
mkCrLf string "\r\n"
     
mkMouse_ARROW int 65539
mkMouse_IBEAM int 65541
mkMouse_WAIT int 65543
mkMouse_CROSS int 65545
mkMouse_UPARROW int 65547
mkMouse_SIZENWSE int 65549
mkMouse_SIZENESW int 65551
mkMouse_SIZEWE int 65553
mkMouse_SIZENS int 65555
mkMouse_SIZEALL int 65557
mkMouse_NO int 65559
mkMouse_APPSTARTING int 65561
mkMouse_HELP int 65563
mkMouse_HAND int 65567
     
mkSW_FORCEMINIMIZE int 11
mkSW_HIDE int 0
mkSW_MAXIMIZE int 3
mkSW_MINIMIZE int 6
mkSW_RESTORE int 9
mkSW_SHOW int 5
mkSW_SHOWDEFAULT int 10
mkSW_SHOWMAXIMIZED int 3
mkSW_SHOWMINIMIZED int 2
mkSW_SHOWMINNOACTIVE int 7
mkSW_SHOWNA int 8
mkSW_SHOWNOACTIVATE int 4
mkSW_SHOWNORMAL int 1
     
mkHWND_BOTTOM int 1
mkHWND_NOTOPMOST int -2
mkHWND_TOP int 0
mkHWND_TOPMOST int -1
mkHWND_MESSAGE int -3
mkHWND_BROADCAST int 65535
     
mkSWP_ASYNCWINDOWPOS int 16384
mkSWP_DEFERERASE int 8192
mkSWP_DRAWFRAME int 32
mkSWP_FRAMECHANGED int 32
mkSWP_HIDEWINDOW int 128
mkSWP_NOACTIVATE int 16
mkSWP_NOCOPYBITS int 256
mkSWP_NOMOVE int 2
mkSWP_NOOWNERZORDER int 512
mkSWP_NOREDRAW int 8
mkSWP_NOREPOSITION int 512
mkSWP_NOSENDCHANGING int 1024
mkSWP_NOSIZE int 1
mkSWP_NOZORDER int 4
mkSWP_SHOWWINDOW int 64
     
mkGW_CHILD int 5
mkGW_ENABLEDPOPUP int 6
mkGW_HWNDFIRST int 0
mkGW_HWNDLAST int 1
mkGW_HWNDNEXT int 2
mkGW_HWNDPREV int 3
mkGW_OWNER int 4
     
mkBST_CHECKED int 1
mkBST_INDETERMINATE int 2
mkBST_UNCHECKED int 0
     
mkSMTO_ABORTIFHUNG int 2
mkSMTO_BLOCK int 1
mkSMTO_NORMAL int 0
mkSMTO_NOTIMEOUTIFNOTHUNG int 8
mkSMTO_ERRORONEXIT int 32