Alle Laufwerke anzeigen und Auswahl auswerten

  • Hallo,
    ich habe folgendes Problem
    Auf einer GUI sollen alle "Removable" Laufwerke mit Checkbox angezeigt werden und die Auswahl soll ausgewertet werden.
    Die Laufwerke auf die GUI zu bekommen mit Checkbox klappt: (Auszug noch mit Allen Laufwerken)

    [autoit]

    $aAllDrives = DriveGetDrive("ALL")
    $desty = 60For $i = 1 To $aAllDrives[0]
    If StringLeft($aAllDrives[$i], 2) <> StringLeft(@ScriptDir, 2) Then
    $Dest = GUICtrlCreateCheckbox(StringLeft($aAllDrives[$i], 2), 457, $desty, 97, 25)
    $desty = $desty + 21
    Endif

    [/autoit][autoit][/autoit][autoit]

    Next

    [/autoit]


    Aber wie kann ich die Checkboxen benennen um nachher abzufragen welche angehakt worden sind?

    Es geht darum dass wir in der Firma öfter mal USB Sticks als Werbegeschenk haben. Dann muss ich immer 30 Stück (also zuwenig um das prof. machen zu lassen) vorbereiten und dafür hätte ich gerne das Programm - Quelle wählen, Ziellaufwerke wählen, dann werden die Ziele formatiert und die Bezeichnunh angepasst und der Quellordner jeweils draufkopiert und die Sticks ausgeworfen...

    Danke

  • Das hier sollte dir helfen: [ offen ] CD-Laufwerke in ComboBox anzeigen?.
    Edit: Mit einer Checkbox wird das ganze komplizierter. Ich empfehle dir, das (wie auch in dem Thread) mit einer Combobox zu lösen.

    Zitat

    Dann muss ich immer 30 Stück (also zuwenig um das prof. machen zu lassen) vorbereiten und dafür hätte ich gerne das Programm - Quelle wählen, Ziellaufwerke wählen, dann werden die Ziele formatiert und die Bezeichnunh angepasst und der Quellordner jeweils draufkopiert und die Sticks ausgeworfen...

    Ich sollte genauer lesen, sorry... Von daher wäre eine Combobox doch unsinnig.

    Ich hatte gerade Zeit und habe dir mal ein Beispiel gecodet. ;)

    Code Beispiel
    [autoit]

    #NoTrayIcon

    [/autoit] [autoit][/autoit] [autoit]

    #Region Constants
    Const $sWindowName = 'VolumeCheckboxes - Beispiel' ; ´written by CyRoX
    Const $sDriveType = 'ALL' ; ==>Legt fest, welche Volumes angezeigt werden sollen
    Const $iXDistance = 50 ; ==> Legt Abstand der Checkboxen fest
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Graphic User Interface
    $hGUI = GUICreate($sWindowName, 296, 110)
    $hStart = GUICtrlCreateButton('Ausgewählte Volumes anzeigen', 10, 70, 275, 25)

    [/autoit] [autoit][/autoit] [autoit]

    $iXCoord = $iXDistance
    $aDrive = DriveGetDrive($sDriveType)
    Dim $aCheckbox[$aDrive[0]]
    For $i = 1 To $aDrive[0]
    $aCheckbox[$i-1] = GUICtrlCreateCheckbox(StringUpper($aDrive[$i]), $iXCoord, 30)
    $iXCoord = $iXCoord + $iXDistance
    Next
    GUISetState(@SW_SHOW)
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Loop
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    Exit
    Case $hStart
    $sCheckedDrives = ''
    For $i = 1 To $aDrive[0]
    If BitAND(GUICtrlRead($aCheckbox[$i-1]), 1) Then
    $sCheckedDrives &= ControlGetText($sWindowName, '', $aCheckbox[$i-1]) & ' '
    EndIf
    Next
    If $sCheckedDrives <> '' Then
    MsgBox(64, 'Info', $sCheckedDrives, 60, $hGUI)
    Else
    MsgBox(64, 'Info', 'Keine Volumes ausgewählt', 60, $hGUI)
    EndIf
    EndSwitch
    WEnd
    #EndRegion

    [/autoit]

    Wenn du noch Fragen dazu hast, nur her damit!

    4 Mal editiert, zuletzt von CyRoX (11. September 2012 um 18:53)