找回密码
 加入
搜索
查看: 7901|回复: 32

如何每隔几秒检查一下U盘并且自动拷贝文件到U盘?

 火.. [复制链接]
发表于 2009-12-25 23:03:07 | 显示全部楼层 |阅读模式
本帖最后由 pizigao 于 2009-12-26 13:54 编辑

因为最近做一件事情~就是把文档要拷贝到U盘里面,因为U盘数量比较多,每次都是点击发送到U盘比较慢~麻烦大家帮我一下!谢谢

过3秒钟判断一次U盘是否插上~如果插上就把C盘下面的1.DOC文件自动拷贝到U盘根目录,拷贝完成后提示拷贝成功;没插上就提示插入U盘!谢谢大家了~

评分

参与人数 1金钱 +10 收起 理由
pusofalse + 10 感谢主动修改帖子分类为[已解决]。

查看全部评分

发表于 2009-12-26 08:29:01 | 显示全部楼层
有可能出现多个u盘吗?
如果有,最好指定固定盘符,比较好判断。
 楼主| 发表于 2009-12-26 08:40:30 | 显示全部楼层
有可能出现多个u盘吗?
如果有,最好指定固定盘符,比较好判断。
sky808 发表于 2009-12-26 08:29


不会~就一个U盘
发表于 2009-12-26 09:11:37 | 显示全部楼层
本帖最后由 水木子 于 2009-12-26 11:13 编辑

其实这都是帮助文档的内容,稍做修改便可实现。
AdlibRegister ( "detect" ,3000)

While 1
        Sleep(250)
WEnd        

Func detect()
$var = DriveGetDrive("Removable")
        If NOT @error Then
                For $i = 1 to $var[0]
                        MsgBox(4096,"发现可移动磁盘", $var[$i]&' 开始复制文件!')
                Next                
        EndIf
EndFunc
 楼主| 发表于 2009-12-26 09:32:43 | 显示全部楼层
其实这都是帮助文档的内容,稍做修改便可实现。
水木子 发表于 2009-12-26 09:11


复制文件的动作如何实现?
 楼主| 发表于 2009-12-26 09:34:39 | 显示全部楼层


运行报错~麻烦木子看一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2009-12-26 09:35:26 | 显示全部楼层
这里只要检测Removable就行了吧~不用ALL的吧
发表于 2009-12-26 10:02:45 | 显示全部楼层
我这里运行一切正常啊!是不是Au3版本的问题?
我用的是3.3.2.0
发表于 2009-12-26 10:04:52 | 显示全部楼层
FileCopy
等函数都可以用来复制文件。
 楼主| 发表于 2009-12-26 10:05:11 | 显示全部楼层
我这里运行一切正常啊!是不是Au3版本的问题?
我用的是3.3.2.0
水木子 发表于 2009-12-26 10:02


我的是3.2.13.7
发表于 2009-12-26 10:18:55 | 显示全部楼层
升级下Au3吧!要不然AdlibRegister 得换成以前的!
 楼主| 发表于 2009-12-26 10:22:45 | 显示全部楼层
本帖最后由 pizigao 于 2009-12-26 10:28 编辑
等函数都可以用来复制文件。
水木子 发表于 2009-12-26 10:04


FileCopy("c:\1.doc", $panfu,1)

找到的盘符函数呢?我这里用 $panfu定义的!其实我不需要提示的~就是没插U盘提示插一下~如果插了U盘就直接复制文件,不用提示~木子帮我完善一下代码吧!谢谢了!
发表于 2009-12-26 10:47:37 | 显示全部楼层
#include<file.au3>
$HDisk="d:\usbfile"

AdlibRegister('autocopyusbfile')

while 1
        sleep(100)
WEnd

func autocopyusbfile()
$usblist = DriveGetDrive("REMOVABLE")
        If IsArray($usblist) Then
                For $i = 1 To $usblist[0]
                        $abc= DriveSpaceTotal ($usblist[$i] )
                        if  @error then ContinueLoop 
                        $usbfile = _FileListToArray($usblist[$i])
                        If IsArray($usbfile) Then
                                For $a = 1 To $usbfile[0]
                                        Filecopy($usblist[$i] & "" & $usbfile[$a], $HDisk&""&$usbfile[$a], 8)
                                Next
                        EndIf
                Next

        EndIf
EndFunc
 楼主| 发表于 2009-12-26 10:52:24 | 显示全部楼层
本帖最后由 pizigao 于 2009-12-26 10:57 编辑

谢谢13楼的兄弟~试试先!拷贝好像不成功么~也没提示!呵呵
 楼主| 发表于 2009-12-26 11:09:01 | 显示全部楼层
本帖最后由 pizigao 于 2009-12-26 11:11 编辑
$var = DriveGetDrive( "REMOVABLE" )
If NOT @error Then
$panfu="c:"
For $i = 1 to $var[0]
if DriveGetLabel ($var[$i])="" Then 
$panfu=$var[$i]
EndIf
Next
EndIf

DirCreate($panfu&"\模板")
FileCopy("c:\模板\*.*", $panfu&"\模板",1)
If FileExists($panfu&"\模板\*.xls") Then
MsgBox(4096, "拷贝成功", "拷贝成功,请退出U盘")
Else
MsgBox(4096,"请重新拷贝", "拷贝不成功,请重新拷贝")
endif
这是我写的~手工执行的~没有不知道如何加上U盘校验,如果没插上就提示!我现在这个代码在没有插U盘的情况会报错~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-17 07:55 , Processed in 0.081327 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表