为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

VMware 虚拟机操作源码

三叶资源网 2020-05-18 13:06:27 易语言例程 3287 ℃ 4 评论

部分代码:

.版本 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, “克隆完成!”)

@a4561482

VMware 虚拟机操作源码.png

文件下载

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

猜你喜欢

已有4位网友发表了看法:

  • 易语言

    易语言  评论于 [2020-08-17 19:59:09]  回复

    易语言写虚拟机多开

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
动态加解密EXUI仿迅雷登陆界面程序调试简历下载单课基础课程集合引流易语言IDE界面上传正则工具源码工作记忆训练JSEncryptExDUI视频教程自绘jar解包golang链接器手动记牌封包组包百度POST
最新评论