找回密码
 加入
搜索
查看: 6006|回复: 12

[系统综合] [已解决]使用DriveGetDrive有时会报软盘错误???

  [复制链接]
发表于 2013-5-21 18:38:02 | 显示全部楼层 |阅读模式
本帖最后由 邪恶海盗 于 2013-5-23 14:40 编辑

提示:驱动器中没有软盘,请在驱动器XXX中插入软盘.

出现的原因:手机插上电脑而未打开USB存储设备,意思就是显示盘符但打不开的那种...
Local $Drive = DriveGetDrive("all")
For $i = $Drive[0] To 1 Step -1
        If FileExists($Drive[$i] & "\SWAI\SWAI.ini") Then        
                ExitLoop
        EndIf
Next
Local $var = IniReadSectionNames($Drive[$i] & "\SWAI\SWAI.ini")
If @error Then
        $msg = MsgBox(48 + 262144, '@警告', '未找到SWAI.ini配置文件,程序将自动退出!', 5, 2)
EndIf
看下哪里有错误,求指导...
发表于 2013-5-21 19:06:12 | 显示全部楼层
Local $aDrive = DriveGetDrive('ALL'), $i, $Val, $aVar = 0
For $i = $aDrive[0] To 2 Step -1
        $Val = DriveGetFileSystem($aDrive[$i])
        If $Val = '' Or $Val = 1 Then ContinueLoop
        If FileExists($aDrive[$i] & '\SWAI\SWAI.ini') Then
                $aVar = IniReadSectionNames($aDrive[$i] & '\SWAI\SWAI.ini')
                ExitLoop
        EndIf
Next
If Not IsArray($aVar) Then Exit MsgBox(48 + 262144, '@警告', '未找到 "SWAI.ini" 配置文件, 程序将于3秒后自动退出!', 3)
 楼主| 发表于 2013-5-21 19:19:35 | 显示全部楼层
回复 2# afan


    AFAN能给点提示么???
发表于 2013-5-21 19:27:08 | 显示全部楼层
回复  afan


    AFAN能给点提示么???
邪恶海盗 发表于 2013-5-21 19:19



    写全了都不够?
 楼主| 发表于 2013-5-21 19:48:40 | 显示全部楼层
回复 4# afan


    认真研究了一上,原来在搜索之前先判断并去除未格式化或者无意义的盘就行了...
 楼主| 发表于 2013-5-21 19:55:58 | 显示全部楼层
    Local $Drive = DriveGetDrive("all")
    For $i = $Drive[0] To 1 Step -1
if DriveGetFileSystem($Drive[$i]) = 0 or 1 then
ContinueLoop
            If FileExists($Drive[$i] & "\SWAI\SWAI.ini") Then       
                    ExitLoop
            EndIf
    Next
    Local $var = IniReadSectionNames($Drive[$i] & "\SWAI\SWAI.ini")
    If @error Then
            $msg = MsgBox(48 + 262144, '@警告', '未找到SWAI.ini配置文件,程序将自动退出!', 5, 2)
    EndIf
发表于 2013-5-21 20:01:00 | 显示全部楼层
唉……
 楼主| 发表于 2013-5-21 20:29:20 | 显示全部楼层
蛋定....

小学没毕业的水平,也只能整成这样了...
发表于 2013-5-21 20:36:09 | 显示全部楼层
我很蛋定,如果你能不一直收到“@警告”的话
发表于 2013-5-21 22:10:04 | 显示全部楼层
回复 8# 邪恶海盗

也有点替你急....
你在循环外面读配置文件,但你还引用着循环里的变量 $i
按你的想法应该这样:
Local $Drive = DriveGetDrive("all")
Local $iniFile
For $i = $Drive[0] To 1 Step -1
        If DriveGetFileSystem($Drive[$i]) = 0 Or 1 Then
                ContinueLoop
                If FileExists($Drive[$i] & "\SWAI\SWAI.ini") Then
                        $iniFile = $Drive[$i] & "\SWAI\SWAI.ini"
                        ExitLoop
                EndIf
        EndIf
Next
Local $var = IniReadSectionNames($iniFile)
If @error Then
        $msg = MsgBox(48 + 262144, '@警告', '未找到SWAI.ini配置文件,程序将自动退出!', 5, 2)
EndIf
 楼主| 发表于 2013-5-22 09:02:27 | 显示全部楼层
回复  邪恶海盗

也有点替你急....
你在循环外面读配置文件,但你还引用着循环里的变量 $i
按你的想法 ...
user3000 发表于 2013-5-21 22:10


貌似AU3里的变量是以最后一次得到的值来确定的,我在找到这个文件后就跳出循环了,引用这个值应该没啥问题吧???
发表于 2013-5-22 09:44:33 | 显示全部楼层
回复 11# 邪恶海盗


变量有局部变量,全局变量,常量
你先了解下帮助文件内关于对变量的说明(其实多数语言差不多)
 楼主| 发表于 2013-5-22 12:58:33 | 显示全部楼层
本帖最后由 邪恶海盗 于 2013-5-22 13:00 编辑

回复 12# wsfda


意思是改成局部变量就行了???
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-20 19:56 , Processed in 0.083319 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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