515276542 发表于 2011-5-17 12:44:57

[已解决]怎样获取到多个U盘盘符?帮忙修改下代码

本帖最后由 515276542 于 2011-5-19 08:39 编辑

怎样获取到多个U盘盘符?
现在插着两个U盘也只能获取到一个U盘的盘符,帮忙修改下代码
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 294, 187, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 16, 16, 265, 113)
GUICtrlSetBkColor($Edit1,0xFFFFFF)
GUICtrlSetState($Edit1, $GUI_DISABLE)
GUICtrlSetData(-1, "")
$Button1 = GUICtrlCreateButton("获取U盘", 152, 152, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
      Case $Button1
                        move()
        EndSwitch
WEnd

Func move()
        $zi = "已连接的设备盘符为 ==>"
        $drive = DriveGetDrive( "REMOVABLE" );获取一个含有指定驱动器盘符, "REMOVABLE(可移动驱动器)"
        If Not @error Then
                For $i = 1 to $drive
                        $daxie = StringUpper($drive[$i]);将小写盘符转换大写
                        GUICtrlSetData ( $Edit1,$zi & $daxie);修改指定控件的数据,$Edit2是那个输入框
;~                   MsgBox(64,"发现设备","已连接的设备盘符为" & $daxie,"",$Form1);显示一个简单的对话框
                Next
        Else
                MsgBox(16,"警告!","未发现有U盘。","",$Form1);显示一个简单的对话框
        EndIf
EndFunc

3mile 发表于 2011-5-17 12:58:01

第31行改为:_GUICtrlEdit_AppendText($Edit1,@crlf&$zi&$daxie)

xyhqqaa 发表于 2011-5-17 13:13:41

{:face (249):}标记下。。。。。。。。。。。

515276542 发表于 2011-5-17 15:49:46

回复 2# 3mile

能不能只显示一次26行那个提示啊?

3mile 发表于 2011-5-18 10:44:26

回复3mile

能不能只显示一次26行那个提示啊?
515276542 发表于 2011-5-17 15:49 http://www.autoitx.com/images/common/back.gif
完全听不懂你说的一次26行是什么意思.请解释

515276542 发表于 2011-5-18 14:55:35

本帖最后由 515276542 于 2011-5-18 17:02 编辑

回复 5# 3mile


就是说现在改了之后在GUICtrlCreateEdit的控件里显示

   已连接的设备盘符为 ==>H:
   已连接的设备盘符为 ==>I:

能不能改成

    已连接的设备盘符为 ==>H: I:

3mile 发表于 2011-5-18 17:53:32

回复 6# 515276542
变通下即可:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 294, 187, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 16, 16, 265, 113)
GUICtrlSetBkColor($Edit1, 0xFFFFFF)
GUICtrlSetState($Edit1, $GUI_DISABLE)
GUICtrlSetData(-1, "")
$Button1 = GUICtrlCreateButton("获取U盘", 152, 152, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Button1
                        move()
        EndSwitch
WEnd

Func move()
        $zi = "已连接的设备盘符为 ==>"
        $drive = DriveGetDrive("REMOVABLE");获取一个含有指定驱动器盘符, "REMOVABLE(可移动驱动器)"
        If Not @error Then
                Local $daxie = ""
                For $i = 1 To $drive
                        $daxie &= StringUpper($drive[$i]) & Chr(32);将小写盘符转换大写
                Next
                GUICtrlSetData($Edit1, $zi & $daxie);修改指定控件的数据,$Edit2是那个输入框
        Else
                MsgBox(16, "警告!", "未发现有U盘。", "", $Form1);显示一个简单的对话框
        EndIf
EndFunc   ;==>move

515276542 发表于 2011-5-19 18:12:37

回复 7# 3mile


    谢谢啦{:face (239):}

yangyunbo 发表于 2011-12-17 18:35:13

代码收下了!

scudder 发表于 2012-10-16 09:57:41

很好用的代码

chzj589 发表于 2012-10-16 11:04:41

好用的代码{:face (427):}

872777825 发表于 2012-10-19 23:52:52

好用的代码

jianganew 发表于 2015-8-29 11:46:49

代码收下了,记下。
页: [1]
查看完整版本: [已解决]怎样获取到多个U盘盘符?帮忙修改下代码