.版本 2
.支持库 iext
.支持库 shellEx
.支持库 shell
.支持库 eAPI
.支持库 iext2
.程序集 窗口程序集1
.程序集变量 a, 子程序指针
.程序集变量 保存目录, 文本型
.程序集变量 热键1, 整数型
.子程序 __启动窗口_创建完毕
.判断开始 (程序是否已运行 (“禁止多次运行”) = 真)
销毁 ()
.默认
透明标签4.标题 = 取运行目录 ()
保存目录 = 透明标签4.标题
编辑框1.加入文本 (到文本 (取小时 (取现行时间 ())) + “时” + 到文本 (取分钟 (取现行时间 ())) + “分” + 到文本 (取秒 (取现行时间 ())) + “秒” + “ 程序启动完毕” + #换行符)
添加提示 (透明标签4.取窗口句柄 (), “单击打开”, 假, 假)
热键1 = 注册热键 (_启动窗口.取窗口句柄 (), 标签1.取窗口句柄 (), 0, #F9键)
.判断结束
.子程序 _标签1_反馈事件, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
.判断开始 (参数一 = 热键1)
_启动窗口.可视 = 真
_启动窗口.位置 = 1
.默认
.判断结束
.子程序 程序是否已运行, 逻辑型, 公开
.参数 标志文本, 文本型
.局部变量 局_事件句柄, 整数型
.如果真 (API_打开事件同步对象 (2031619, 假, “联系猪猪”) ≠ 0)
返回 (真)
.如果真结束
局_事件句柄 = API_创建事件同步对象 (0, 假, 假, “联系猪猪”)
返回 (假)
.子程序 MsgProc, 整数型, , 监视线程
.参数 hwnd, 整数型
.参数 msg, 整数型
.参数 wp, 整数型
.参数 lp, 整数型
.局部变量 val, PDEV_BROADCAST_VOLUME
.局部变量 i, 整数型
.局部变量 mask, 整数型
.判断开始 (msg = 537)
.判断开始 (wp = #DBT_DEVICERARRIVAL) ' 插入USB设备
API_复制结构体 (val, lp, 14)
.如果真 (val.dbcv_devicetype = #DBT_DEVTYP_VOLUME)
mask = val.dbcv_unitmask
.变量循环首 (0, 25, 1, i)
.如果真 (位与 (mask, 1) = 1)
跳出循环 ()
.如果真结束
mask = 右移 (mask, 1)
.变量循环尾 ()
编辑框1.加入文本 (到文本 (取小时 (取现行时间 ())) + “时” + 到文本 (取分钟 (取现行时间 ())) + “分” + 到文本 (取秒 (取现行时间 ())) + “秒” + “ USB磁盘被插入,盘符:” + 字符 (65 + i) + #换行符)
复制目录 (字符 (65 + i) + “:\”, 保存目录) ' 复制U盘所有文件到指定文件夹
.如果真结束
.判断 (wp = #DBT_DEVICEREMOVECOMPLETE) ' 拔出USB设备
API_复制结构体 (val, lp, 14)
.如果真 (val.dbcv_devicetype = #DBT_DEVTYP_VOLUME)
mask = val.dbcv_unitmask
.变量循环首 (0, 25, 1, i)
.如果真 (位与 (mask, 1) = 1)
跳出循环 ()
.如果真结束
mask = 右移 (mask, 1)
.变量循环尾 ()
编辑框1.加入文本 (到文本 (取小时 (取现行时间 ())) + “时” + 到文本 (取分钟 (取现行时间 ())) + “分” + 到文本 (取秒 (取现行时间 ())) + “秒” + “ USB磁盘被拔除,盘符:” + 字符 (65 + i) + #换行符)
.如果真结束
.默认
.判断结束
.默认
.判断结束
返回 (API_CallWindowProc (a, hwnd, msg, wp, lp))
.子程序 __启动窗口_将被销毁
a = API_SetWindowLong (_启动窗口.取窗口句柄 (), -4, a) ' 关闭监视线程
.子程序 _超级按钮5_被单击
_启动窗口.位置 = 2
.子程序 _超级按钮6_被单击
_启动窗口.可视 = 假
.子程序 _超级按钮4_被单击
.如果 (信息框 (“确定要退出本程序吗?”, #确认取消钮 + #询问图标, “确认退出?”) = #确认钮)
结束 ()
.否则
返回 ()
.如果结束
.子程序 _超级按钮2_被单击
信息框 (“1.使用提示: ” + #换行符 + #换行符 + “A.单击<开始监视>按钮开启自动监视U盘功能,” + #换行符 + #换行符 + “ 当有U盘插入时将自动拷贝U盘内所有文件。” + #换行符 + #换行符 + “B.单击<保存路径>按钮设置保存文件路径,程” + #换行符 + #换行符 + “ 序会自动将所拷贝文件保存至指定目录下。” + #换行符 + #换行符 + “C.设置好保存路径后点击<开始监视>按钮即可,” + #换行符 + #换行符 + “ 程序将自动隐藏,如需查看程序,按下F9即可。” + #换行符 + #换行符 + “2.猪猪祝大家开心!” + #换行符 + #换行符 + “ 猪猪天堂”, 0, “帮助文件:”)
.子程序 _超级按钮1_被单击
保存目录 = 浏览文件夹 (“请选择保存路径:”, )
.判断开始 (保存目录 ≠ “”)
透明标签4.标题 = 保存目录
.默认
保存目录 = 透明标签4.标题
返回 ()
.判断结束
.子程序 _透明标签4_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
打开指定网址 (透明标签4.标题) ' 打开保存目录
.子程序 _超级按钮3_被单击
.判断开始 (超级按钮3.标题 = “开始监视”)
a = API_SetWindowLong (_启动窗口.取窗口句柄 (), -4, &MsgProc) ' 开启监视线程
超级按钮3.标题 = “停止监视”
超级按钮3.提示文本 = “停止自动监视U盘”
透明标签5.标题 = “状态:监视已开启”
信息框 (“U盘监视已开启!”, 0, “提示信息:”)
_启动窗口.可视 = 假
.默认
a = API_SetWindowLong (_启动窗口.取窗口句柄 (), -4, a) ' 关闭监视线程
超级按钮3.标题 = “开始监视”
超级按钮3.提示文本 = “开启自动监视U盘”
透明标签5.标题 = “状态:监视未开启”
信息框 (“U盘监视已停止!”, 0, “提示信息:”)
.判断结束
.子程序 复制目录, 逻辑型
.参数 被复制目录, 文本型, , 形式如:"c:\windows"等
.参数 复制到的目录, 文本型, , 形式如:"e:\bak\win98"等
.局部变量 文件名, 文本型
.局部变量 记录文本, 文本型
处理事件 () ' 给出机会以接收停止按钮事件。
.如果真 (取文本右边 (被复制目录, 1) ≠ “\”)
被复制目录 = 被复制目录 + “\”
.如果真结束
文件名 = 寻找文件 (被复制目录 + “*.*”, )
.如果 (文件名 = “”)
创建目录 (复制到的目录)
.否则
.如果结束
.判断循环首 (文件名 ≠ “”)
创建目录 (复制到的目录)
.如果真 (取文本右边 (复制到的目录, 1) ≠ “\”)
复制到的目录 = 复制到的目录 + “\”
.如果真结束
复制文件 (被复制目录 + 文件名, 复制到的目录 + 文件名)
记录文本 = 到文本 (取小时 (取现行时间 ())) + “时” + 到文本 (取分钟 (取现行时间 ())) + “分” + 到文本 (取秒 (取现行时间 ())) + “秒” + “ 拷贝 ” + 被复制目录 + 文件名 + “ 成功”
编辑框1.加入文本 (记录文本 + #换行符)
文件名 = 寻找文件 (, )
.判断循环尾 ()
文件名 = 寻找文件 (被复制目录 + “*.*”, #子目录)
.判断循环首 (文件名 ≠ “”)
.如果真 (取文本右边 (复制到的目录, 1) ≠ “\”)
复制到的目录 = 复制到的目录 + “\”
.如果真结束
.如果真 (取文本左边 (文件名, 1) ≠ “.”)
复制目录 (被复制目录 + 文件名, 复制到的目录 + 文件名)
记录文本 = 到文本 (取小时 (取现行时间 ())) + “时” + 到文本 (取分钟 (取现行时间 ())) + “分” + 到文本 (取秒 (取现行时间 ())) + “秒” + “ 拷贝 ” + 被复制目录 + 文件名 + “ 成功”
编辑框1.加入文本 (记录文本 + #换行符)
.如果真结束
创建目录 (复制到的目录 + 文件名)
文件名 = 寻找文件 (, #子目录)
.判断循环尾 ()
返回 (真)
|