邪恶海盗 发表于 2013-5-21 18:38:02

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

本帖最后由 邪恶海盗 于 2013-5-23 14:40 编辑

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

出现的原因:手机插上电脑而未打开USB存储设备,意思就是显示盘符但打不开的那种...Local $Drive = DriveGetDrive("all")
For $i = $Drive 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看下哪里有错误,求指导...

afan 发表于 2013-5-21 19:06:12

Local $aDrive = DriveGetDrive('ALL'), $i, $Val, $aVar = 0
For $i = $aDrive 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能给点提示么???

afan 发表于 2013-5-21 19:27:08

回复afan


    AFAN能给点提示么???
邪恶海盗 发表于 2013-5-21 19:19 http://www.autoitx.com/images/common/back.gif


    写全了都不够?

邪恶海盗 发表于 2013-5-21 19:48:40

回复 4# afan


    认真研究了一上,原来在搜索之前先判断并去除未格式化或者无意义的盘就行了...

邪恶海盗 发表于 2013-5-21 19:55:58

    Local $Drive = DriveGetDrive("all")
    For $i = $Drive 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

afan 发表于 2013-5-21 20:01:00

唉……

邪恶海盗 发表于 2013-5-21 20:29:20

蛋定....

小学没毕业的水平,也只能整成这样了...

afan 发表于 2013-5-21 20:36:09

我很蛋定,如果你能不一直收到“@警告”的话

user3000 发表于 2013-5-21 22:10:04

回复 8# 邪恶海盗

也有点替你急....
你在循环外面读配置文件,但你还引用着循环里的变量 $i
按你的想法应该这样:Local $Drive = DriveGetDrive("all")
Local $iniFile
For $i = $Drive 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 http://www.autoitx.com/images/common/back.gif

貌似AU3里的变量是以最后一次得到的值来确定的,我在找到这个文件后就跳出循环了,引用这个值应该没啥问题吧???

wsfda 发表于 2013-5-22 09:44:33

回复 11# 邪恶海盗


变量有局部变量,全局变量,常量
你先了解下帮助文件内关于对变量的说明(其实多数语言差不多)

邪恶海盗 发表于 2013-5-22 12:58:33

本帖最后由 邪恶海盗 于 2013-5-22 13:00 编辑

回复 12# wsfda


意思是改成局部变量就行了???
页: [1]
查看完整版本: [已解决]使用DriveGetDrive有时会报软盘错误???