部分代码:
.版本 2
.支持库 spec
.支持库 EThread
.支持库 shell
.支持库 iext
.程序集 窗口程序集_启动窗口
.程序集变量 文件, 文本型, , "0"
.程序集变量 鱼刺类, 鱼刺类_线程池Ex
.程序集变量 临界, 鱼刺类_临界许可
.程序集变量 克隆数量, 整数型
.程序集变量 许可证插入, 整数型
.子程序 _按钮1_被单击
.局部变量 开机, 逻辑型
开机 = 运行 (目录 + “ -T ws start ” + #引号 + 编辑框2.内容 + #引号, 假, ) ' 运行虚拟机
.如果 (开机)
信息框 (“开机成功!”, 0, , )
.否则
信息框 (“开机失败!”, 0, , )
.如果结束
.子程序 _按钮2_被单击
运行 (目录 + “ -T ws stop ” + #引号 + 编辑框2.内容 + #引号, 假, ) ' 关闭虚拟机
.子程序 _按钮3_被单击
运行 (目录 + “ -T ws deleteVM ” + #引号 + 编辑框2.内容 + #引号, 假, ) ' 删除虚拟机
.子程序 _按钮4_被单击
.局部变量 i, 整数型
批量开机.禁止 = 真
运行 (目录 + “ -T ws snapshot ” + #引号 + 编辑框2.内容 + #引号 + “ fix1”, 假, ) ' 设置指定快照名
延迟 (2000)
启动线程 (&多线程操作克隆, , )
.子程序 多线程操作克隆
.局部变量 线程数, 整数型
.局部变量 延迟时间, 整数型
鱼刺类.创建 (到整数 (编辑框3.内容), 到整数 (编辑框3.内容), , 真, )
延迟时间 = 0 × 1000
克隆数量 = 0
.判断循环首 (克隆数量 < 到整数 (编辑框3.内容))
线程数 = 0
.如果真 (到整数 (编辑框3.内容) - 克隆数量 < 线程数)
线程数 = 到整数 (编辑框3.内容) - 克隆数量
.如果真结束
.判断循环首 (线程数 < 到整数 (编辑框3.内容))
调试输出 (线程数)
调试输出 (克隆数量)
' 鱼刺类.投递任务 (&投递任务, 克隆数量)
原子_递增 (线程数)
原子_递增 (克隆数量)
批量创建 (到文本 (克隆数量))
.判断循环尾 ()
鱼刺类.等待任务动态 (10000, 真)
程序_延时 (延迟时间, )
程序_延时 (100, )
.判断循环尾 ()
鱼刺类.销毁 (, , )
批量开机.禁止 = 假
.子程序 获取路径, 文本型, , 获取克隆后的路径
.局部变量 i, 整数型
.局部变量 返回, 文本型
文件枚举 (编辑框5.内容 + “\”, “*.VMX”, 文件, 真, )
.计次循环首 (取数组成员数 (文件), i)
返回 = 文件 [i]
.计次循环尾 ()
返回 (返回)
.子程序 文件枚举, , 公开
.参数 欲寻找的目录, 文本型, , 文件目录
.参数 欲寻找的文件名, 文本型, , 如果寻找全部文件可以填入*.*,或*.txt只找txt文件
.参数 文件数组, 文本型, 参考 可空 数组, 用于装载文件数组的变量;把寻找到的文件都放在这个数组里,并返回;
.参数 是否带路径, 逻辑型, 可空, 默认为假; 真=带目录路径,如C:\012.txt; 假=不带,如 012.txt;
.参数 是否按字母排序, 逻辑型, 可空, 默认为假;真=按字母a-z排序 假=不排序
.局部变量 局_文件名, 文本型
.局部变量 局_目录, 文本型
.局部变量 局_标识, 文本型
.局部变量 局_位置, 整数型
.局部变量 局_位置1, 整数型
.局部变量 局_标识1, 文本型
清除数组 (文件数组)
局_目录 = 欲寻找的目录
局_位置 = 寻找文本 (欲寻找的文件名, “.”, , 假)
局_标识 = 取文本右边 (欲寻找的文件名, 取文本长度 (欲寻找的文件名) - 局_位置)
调试输出 (局_标识)
.如果真 (取文本右边 (局_目录, 1) ≠ “\”)
局_目录 = 局_目录 + “\”
.如果真结束
局_文件名 = 寻找文件 (局_目录 + 欲寻找的文件名, )
.判断循环首 (局_文件名 ≠ “”)
局_位置1 = 寻找文本 (局_文件名, “.”, , 假)
局_标识1 = 取文本右边 (局_文件名, 取文本长度 (局_文件名) - 局_位置1)
.如果真 (局_标识1 = 局_标识)
加入成员 (文件数组, 局_文件名)
.如果真结束
处理事件 ()
局_文件名 = 寻找文件 (, )
.判断循环尾 ()
调试输出 (文件数组)
.子程序 __启动窗口_创建完毕, , , vmrun.exe
.如果真 (进程_是否存在 (“vmware.exe”) = 假)
信息框 (“请先运行虚拟机主程序!”, 0, , )
结束 ()
.如果真结束
目录 = 进程_取程序路径 (进程_名取ID (“vmware.exe”))
目录 = 文本_替换 (目录, 1, , , “vmware.exe”, “vmrun.exe”)
许可证插入 = 创建进入许可证 ()
调试输出 (目录)
.子程序 __启动窗口_可否被关闭, 逻辑型
删除进入许可证 (许可证插入)
.子程序 _时钟1_周期事件
.局部变量 运行数组, 文本型, , "0"
.局部变量 i, 整数型
.如果真 (文件_枚举 (编辑框5.内容 + “\”, “*.vmdk”) = 到整数 (编辑框3.内容))
' 获取路径 ()
' 文件枚举 (“H:\klvm\”, )
时钟1.时钟周期 = 0
批量开机.禁止 = 假
信息框 (“已克隆完毕!”, 0, , )
.如果真结束
.子程序 _批量开机_被单击
.局部变量 i, 整数型
调试输出 (获取路径 ())
.计次循环首 (取数组成员数 (文件), i)
开机 (编辑框5.内容 + “\” + 文件 [i])
.计次循环尾 ()
.子程序 _按钮5_被单击
.局部变量 路径, 文本型
路径 = 浏览文件夹 (“浏览文件夹”, )
.如果真 (路径 ≠ “”)
编辑框5.内容 = 路径
调试输出 (路径)
.如果真结束
.子程序 _按钮8_被单击
.局部变量 路径, 文本型
.局部变量 文件夹, 文本型
.局部变量 文件名, 文本型
.局部变量 i, 整数型
通用对话框1.类型 = 0 ' 打开文件
' 0、打开文件
' 1、保存文件
' 2、字体选择
' 3、打开帮助
通用对话框1.初始目录 = 取运行目录 ()
' 通用对话框1.文件名 = “新建文本文档.txt”
通用对话框1.过滤器 = “图片文件 (*.jpg;*.png;*.bmp;*.gif)|*.jpg;*.png;*.bmp;*.gif|应用程序 (.exe)|*.exe|所有文件 (*.*)|*.*”
通用对话框1.初始过滤器 = 3 ' 所有文件
.如果真 (通用对话框1.打开 ())
路径 = 通用对话框1.文件名
调试输出 (“完整路径:” + 路径)
编辑框2.内容 = 路径
i = 倒找文本 (路径, “\”, , 假)
.如果真 (i > 0)
文件夹 = 取文本左边 (路径, i - 1)
调试输出 (“文件夹:” + 文件夹)
文件名 = 取文本右边 (路径, 取文本长度 (路径) - i)
调试输出 (“文件名:” + 文件名)
.如果真结束
.如果真结束
.子程序 开机
.参数 路径文件, 文本型
运行 (目录 + “ -T ws start ” + #引号 + 路径文件 + #引号, 假, 1) ' 运行虚拟机
.子程序 关机
.参数 路径文件, 文本型
运行 (目录 + “ stop ” + #引号 + 路径文件 + #引号 + “hard”, 假, ) ' 关闭虚拟机
' vmrun stop "xxx\xxx\Ubuntu.vmx" hard
.子程序 _按钮7_被单击
.局部变量 i, 整数型
调试输出 (获取路径 ())
.计次循环首 (取数组成员数 (文件), i)
关机 (编辑框5.内容 + “\” + 文件 [i])
.计次循环尾 ()
.子程序 批量创建
.参数 代码, 文本型
.局部变量 名字, 文本型
名字 = 编辑框4.内容
索引 = 超级列表框_显示.插入表项 (, , , , , )
运行 (目录 + “ -T ws clone ” + #引号 + 编辑框2.内容 + #引号 + “ ” + 编辑框5.内容 + “\” + 名字 + 代码 + “.VMX linked -snapshot=fix1 -cloneName=” + 名字 + 代码, 假, 1)
超级列表框_显示.置标题 (索引, 0, 名字 + 代码)
超级列表框_显示.置标题 (索引, 1, “克隆完成!”)
易语言写虚拟机多开
易语言虚拟机