点击这里给我发消息

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
一般用于判断该位置是否是一个超链接。

 

键盘函数

函数 描述
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(char c) 键盘按下并松开一个组合键 shift + 虚拟键码(code)
voidkey_ctrl_shift_char(char c) 键盘按下并松开一个组合键 ctrl + shift + '?'
voidkey_ctrl_shift_code(char c) 键盘按下并松开一个组合键 ctrl + shift + 虚拟键码(code)
   
voidkey_press_ctrl() 键盘按下 ctrl 键
voidkey_press_shift() 键盘按下 shift 键
voidkey_press_alt() 键盘按下 alt 键
voidkey_release_ctrl() 键盘松开 ctrl 键
voidkey_release_shift() 键盘松开 shift 键
voidkey_release_alt() 键盘松开 alt 键
   
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_windows() 键盘按下并松开 windows 键(键盘左下角 Ctrl 和 Alt 键之间的按键)
   
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_windows_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' 字符已被删除。
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 lppArray[][]) 获取当前屏幕指定坐标位置(x,y)右下角指定区域(w:宽,h:高)的颜色值。
lppArray:一个二维数组,用于存放指定区域的所有颜色值。
这个二维数组的正确定义:int lppArray[w][h]
适用于和screen_colors_equal()组合判断屏幕一个区域内的图像是否发生了变化。
intscreen_colors_equal(int x, int y, int w, int h, int lppArray[][]) 判断当前屏幕指定坐标位置(x,y)右下角指定区域(w:宽,h:高)的颜色值是否与 lppArray[][] 这个二维数组存放的颜色值相同,相同返回:1,不同返回:0
lppArray:通过 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) 全屏幕查找位图(bmp),如果找到,返回值: 1,坐标信息存放在 returnX, returnY变量中,如果没找到返回值:0, returnX = -1, returnY = -1
intscreen_find_bmp_from_area(int x, int y, int width, int height, Bmp bmp, int returnX, int returnY) 从屏幕指定位置(x,y)指定的搜索区域(宽:width, 高height)查找位图(bmp) 。如果找到,返回值: 1,坐标信息存放在 returnX, returnY变量中,如果没找到返回值:0, returnX = -1, returnY = -1
   
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) 在位图(b1)中查找位图(b2),如果找到,返回值: 1,坐标信息存放在 returnX, returnY变量中,如果没找到返回值:0, returnX = -1, returnY = -1
intbmp_find_bmp_from_area(Bmp b1, int x, int y, int width, int height, Bmp b2, int returnX, int returnY) 从位图(b1)指定位置(x,y)指定的搜索区域(宽:width, 高height)查找位图(b2) 。如果找到,返回值: 1,坐标信息存放在 returnX, returnY变量中,如果没找到返回值:0, returnX = -1, returnY = -1
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_set_size(int width, int height) 设置脚本运行窗口的宽与高,当设置的宽与高同时大于当前屏幕尺寸,窗口将最大化显示。该函数仅在窗口初始化显示的时候执行一次。
voidwindow_set_location(int x, int y) 初始化脚本运行窗口在屏幕上显示的位置。
注意:无论该函数写在脚本代码的什么位置,仅在窗口显示的时候执行一次。
voidwindow_minimize() 最小化脚本运行窗口。
voidwindow_show() 显示脚本运行窗口。
voidwindow_hide() 隐藏脚本运行窗口。
voidwindow_top(int status) status = 1( 窗口置顶),status = 0(取消窗口置顶)。

 

文件函数

函数 描述
intfile_read(string filePath, string charset, string body) 读取一个文件内容并返回。
filePath:文件的完整路径。
charset:指定文件编码。
body:存放读取的文件内容。
返回值:文件读取成功 返回 1。文件读取失败 返回 0,body 中存放错误信息。

 

类型转换函数

函数 描述
intstoi(string text) 将一个字符串转换成整数并返回,示例:int c = stoi("123")
doublestod(string text) 将一个字符串转换成浮点数并返回,示例:double v = stod("1.23")
stringitos(int v) 将一个整数转换成字符串并返回,示例:string t = itos(123)
doubleitod(int v) 将一个整数转换成浮点数并返回,示例:double v = itod(123)
intdtoi(double v) 将一个浮点数转换成整数并返回,示例:int c = dtoi(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) 移除动态数组中的所有元素。

 

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)
stringprompt(string text, string 变量名 [, type]) 弹出一个输入对话框,参数 type:
mkPrompt_String (1) 在对话框中接受输入任意字符。
mkPrompt_Char (2) 在对话框中只接受输入1个字符。
mkPrompt_Int (3) 在对话框中只接受输入一个整数。
mkPrompt_Numeric (4) 在对话框中只接受输入一个数。
返回值有: mkOk (1),mkCancel (2)

 

硬件访问函数

函数 描述
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 表示保留的小数位。
voidcls() 将 MKScript 运行界面的信息框中的所有内容清空,类似清屏的作用。
   
voidplay_alert_sound(int times) 播放提示音。在脚本运行过程中,当符合一定的条件时,可发出提示音来提示用户。也可以在脚本运行快要结束的时候,发出提示音告诉用户,脚本已结束运行。

参数:times 表示要循环播放提示音的次数,如果值为 -1,表示一直循环播放提示音。
   
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)
   
voidpause_or_continue_ctrl_alt_char(char c) 设置 MKScript 脚本运行过程中的【暂停/继续运行】快捷键。
默认快捷键:ctrl + alt + u

示例:pause_or_continue_ctrl_alt_char('y')
voidstop_ctrl_alt_char(char c) 设置 MKScript 脚本运行过程中的【中止运行】快捷键。
默认快捷键:ctrl + alt + k

示例:stop_ctrl_alt_char('t')
doubleversion() 返回当前MKScript脚本语言的版本号。
voidexit() 中止脚本的运行,程序退出,脚本中止时不弹出提示对话框。

 

系统常量

常量名 类型
mkTrue int 1
mkFalse int 0
     
mkOk int 1
mkCancel int 2
mkYes int 6
mkNo int 7
     
mkOkCancel int 1
mkYesNo int 4
mkYesNoCancel int 3
     
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
     
mkPrompt_String int 0
mkPrompt_Char int 1
mkPrompt_Int int 2
mkPrompt_Numeric int 3
     
mkCr string "\r"
mkLf string "\n"
mkCrLf string "\r\n"