易语言:远程关机1.6(源代码)

来源:百度文库 编辑:神马文学网 时间:2024/04/19 08:48:29

胡子定时远程关机 v1.6
程序集名
保留
保留
备注
窗口程序集1
变量名
类型
数组
备注
shut
逻辑型
按下开始关机
线程数
整数型
主机名数组
文本型
0
主机名表
文本型
pubdir
文本型
本机名
文本型
主标题
文本型
子程序名
返回值类型
公开
备注
__启动窗口_创建完毕
变量名
类型
静态
数组
备注
ttlist
文本型
0
shutinfo
文本型
0
文本信息数组
i
整数型
主标题 = “胡子定时远程关机 v1.6”
_启动窗口.可视 = 真
pubdir = 取运行目录 () + “\”
_启动窗口.标题 = “正在扫描,请稍候……”
shut = 假
线程数 = 0
状态条1.置文本 (0, “ 提示:关机时间=提醒时间+倒计时长,默认关机前5分钟提醒”)
时钟1.时钟周期 = 1000
组合框3.清空 ()
组合框2.清空 ()
组合框1.现行选中项 = 6
如果真 (文件是否存在 (“TTList.ini”))
ttlist = 分割文本 (到文本 (读入文件 (“ttlist.ini”)), #换行符, )
计次循环首 (取数组成员数 (ttlist), i)
组合框2.加入项目 (ttlist [i], )
计次循环尾 ()
组合框2.现行选中项 = 0
如果真结束
如果真 (文件是否存在 (“ttlist.ini”) = 假)
运行 (“cmd.exe /c echo 15:00 >>ttlist.ini && echo 15:55 >>ttlist.ini && echo 17:00 >>ttlist.ini”, 假, 1)
如果真结束
如果真 (文件是否存在 (“shutinfo.ini”) = 假)
写到文件 (“shutinfo.ini”, 到字节集 (“请立即停止作业,并在关机前提交!”))
如果真结束
shutinfo = 分割文本 (到文本 (读入文件 (“shutinfo.ini”)), #换行符, )
计次循环首 (取数组成员数 (shutinfo), i)
组合框3.加入项目 (shutinfo [i], )
计次循环尾 ()
组合框3.现行选中项 = 0
如果真 (文件是否存在 (“userlist.txt”))
删除文件 (“userlist.txt”)
如果真结束
运行 (“cmd.exe /c for /f  ” + #引号 + “skip=3 tokens=1 delims= ” + #引号 + “ %i in ('net view')) do (echo %i) | find ” + #引号 +“\\” + #引号 + “ >> userlist.txt”, 真, 1)
' 此处只能使用运行命令,执行命令不能等待文件生成完毕
本机名 = “\\” + 取主机名 ()
主机名表 = 到文本 (读入文件 (“userlist.txt”))
主机名表 = 子文本替换 (主机名表, “ ”, , , , 真)
主机名表 = 子文本替换 (主机名表, 本机名 + #换行符, , , 1, 假)
写到文件 (“c:\list.txt”, 到字节集 (主机名表))
主机名数组 = 分割文本 (主机名表, #换行符, )
超级编辑框1.内容 = “在线主机扫描完毕!” + #换行符
组合框2.获取焦点 ()
_启动窗口.标题 = 主标题
子程序名
返回值类型
公开
备注
当前时间
文本型
变量名
类型
静态
数组
备注
s
文本型
f
文本型
m
文本型
tt
文本型
s = 到文本 (取时间部分 (取现行时间 (), 6))
f = 到文本 (取时间部分 (取现行时间 (), 7))
如果真 (取文本长度 (f) = 1)
f = “0” + f
如果真结束
m = 到文本 (取时间部分 (取现行时间 (), 8))
tt = s + “:” + f + “:” + m
返回 (tt)
子程序名 返回值类型 公开 备注
_时钟1_周期事件
编辑框1.内容 = 当前时间 ()
如果真 (shut = 真)
如果真 (编辑框1.内容 ≈ 组合框2.内容)
时钟1.时钟周期 = 0
远程关机 ()
如果真结束
如果真结束
子程序名 返回值类型 公开 备注
_按钮1_被单击   提醒关机
变量名 类型 静态 数组 备注
时长 文本型
shut = 真
时长 = 到文本 (组合框1.取项目数值 (组合框1.现行选中项))
超级编辑框1.内容 = 超级编辑框1.内容 + #换行符 + “关机命令已启动,请勿关闭窗口……”
组合框2.禁止 = 真
组合框1.禁止 = 真
如果真 (时长 = “0” 或 时长 = “1” 或 删首尾空 (组合框2.内容) = “”)
时钟1.时钟周期 = 0
远程关机 ()
如果真结束
子程序名 返回值类型 公开 备注
远程关机
变量名 类型 静态 数组 备注
主机名 文本型
i 整数型
计次循环首 (取数组成员数 (主机名数组), i)
主机名 = 删首尾空 (主机名数组 [i])
如果真 (主机名 = “” 或 主机名 = 本机名)
到循环尾 ()
如果真结束
启动线程 (&关机线程, i, )
线程数 = 线程数 + 1
计次循环尾 ()
状态条1.置文本 (0, “ 信息:共开启了 ” + 到文本 (线程数) + “ 个线程”)
超级编辑框1.内容 = “执行线程:” + 到文本 (线程数) + #换行符
超级编辑框1.内容 = 超级编辑框1.内容 + #换行符 + “命令执行完毕!” + #换行符
子程序名 返回值类型 公开 备注
关机线程
参数名 类型 参考 可空 数组 备注
n 整数型
变量名 类型 静态 数组 备注
提示信息 文本型
时长 文本型
pcname 文本型
成功 逻辑型
pcname = 主机名数组 [n]
提示信息 = 组合框3.内容
时长 = 到文本 (组合框1.取项目数值 (组合框1.现行选中项))
判断开始 (时长 = “0”)
运行 (“cmd.exe /c shutdown -m ” + pcname + “ -s -f -t 0 -c ” + 提示信息, 假, 1)
判断 (时长 = “1”)
运行 (“cmd.exe /c shutdown -a -m ” + pcname, 假, 1)
判断 (删首尾空 (组合框2.内容) = “”)
运行 (“cmd.exe /c shutdown -m ” + pcname + “ -s -f -t ” + 时长 + “ -c ” + 提示信息, 假, 1)
默认
运行 (“cmd.exe /c shutdown -m ” + pcname + “ -s -f -t ” + 时长 + “ -c ” + 提示信息, 假, 1)
判断结束
子程序名 返回值类型 公开 备注
_按钮2_被单击   重置
__启动窗口_创建完毕 ()
组合框1.禁止 = 假
组合框2.禁止 = 假
shut = 假
状态条1.置文本 (0, “ 提示:关机系统初始化完毕,您可以重新发布关机命令”)
子程序名 返回值类型 公开 备注
_按钮5_被单击
执行 (4, “notepad.exe”, “userlist.txt”, , )
子程序名 返回值类型 公开 备注
_组合框2_将弹出列表
状态条1.置文本 (0, “ 提示:提醒时间输入格式为:小时:分”)
子程序名 返回值类型 公开 备注
_组合框1_将弹出列表
状态条1.置文本 (0, “ 提示:取消关机可以取消上次发出的关机命令”)
子程序名 返回值类型 公开 备注
_按钮3_被单击
信息框 (“      胡子定时远程关机 v1.6” + #换行符 + “” + #换行符 + “---------------------------------   ” + #换行符 + “1、适用于局域网批量远程关机” + #换行符 + “2、自动扫描上线主机” + #换行符 + “3、具有关机前提醒和倒计时功能” + #换行符 + “4、可以自由设定关机提醒时间” + #换行符 + “5、可以自由设定倒计时的时长” + #换行符 + “6、采用多线程,首尾间隔不超过5秒” + #换行符 + “7、可以自己编辑提醒时间选项列表” + #换行符 + “8、可以查看、编辑主机列表” + #换行符 + “9、设置提醒时间应在当前时间之后,” + #换行符 + “   关机时间之前” + #换行符 + “---------------------------------   ” + #换行符 + “      胡子软件工作室 2010-2”, #信息图标, “帮助信息”)
子程序名 返回值类型 公开 备注
_标签2_鼠标左键被按下 逻辑型
参数名 类型 参考 可空 数组 备注
横向位置 整数型
纵向位置 整数型
功能键状态 整数型
执行 (4, “notepad.exe”, “ttlist.ini”, , )
子程序名 返回值类型 公开 备注
_标签2_鼠标位置被移动 逻辑型
参数名 类型 参考 可空 数组 备注
横向位置 整数型
纵向位置 整数型
功能键状态 整数型
标签2.文本颜色 = #蓝色
标签4.文本颜色 = #黑色
子程序名 返回值类型 公开 备注
_标签4_鼠标位置被移动 逻辑型
参数名 类型 参考 可空 数组 备注
横向位置 整数型
纵向位置 整数型
功能键状态 整数型
标签4.文本颜色 = #蓝色
标签2.文本颜色 = #黑色
子程序名 返回值类型 公开 备注
_标签4_鼠标左键被按下 逻辑型
参数名 类型 参考 可空 数组 备注
横向位置 整数型
纵向位置 整数型
功能键状态 整数型
执行 (4, “notepad.exe”, “shutinfo.ini”, , )
子程序名 返回值类型 公开 备注
_组合框2_被双击 逻辑型
参数名 类型 参考 可空 数组 备注
横向位置 整数型
纵向位置 整数型
功能键状态 整数型
执行 (4, “notepad.exe”, “ttlist.ini”, , )
子程序名 返回值类型 公开 备注
_组合框3_被双击 逻辑型
参数名 类型 参考 可空 数组 备注
横向位置 整数型
纵向位置 整数型
功能键状态 整数型
执行 (4, “notepad.exe”, “shutinfo.ini”, , )
i本程序使用的支持库列表
iext2 (扩展界面支持库二)
EThread (多线程支持库)
iext (扩展界面支持库一)
shell (操作系统界面功能支持库)