Hi,
ich möchte bei einem Klick auf den Button einen FileSelectFolder() Dialog haben, der dann das Ergebnis in das GuiCtrlCreateInput() schreibt.
Wie geht das in meinem Fall?
Spoiler anzeigen
#AutoIt3Wrapper_Res_Fileversion=0.91
#RequireAdmin
#include <GuiConstantsEx.au3>
#Include <File.au3>
Dim $SoftwareTitel = "Scorp's Mp3-Kopierer v0.91"
Dim $Pfad
GuiCreate($SoftwareTitel, 300, 190)
GuiSetIcon("%SystemRoot%\system32\SHELL32.dll", 41)
$context = GuiCtrlCreateContextMenu ()
$contextInfo = GuiCtrlCreateMenuitem ("Informationen",$context)
;$Quelle = FileSelectFolder ("Den Quellordner mit der Musik auswählen:", "root dir", 2)
;$Ziel = FileSelectFolder ("Den Zielordner auswählen:", "root dir", 3)
$Quelle =""
$Ziel = ""
GuiCtrlCreateLabel("Aus dem Quellverzeichnis werden zufällig Dateien ausgesucht und ins Zielverzeichnis kopiert.", 10, 10, 300, 40)
GuiCtrlCreateLabel("Größe:", 10, 53)
$AllowedSize = GuiCtrlCreateInput("3000", 60, 50, 30, 18)
GuiCtrlCreateLabel("Mbyte", 93, 53)
GuiCtrlCreateLabel("Quelle:", 10, 83)
$Quelle = GUICtrlCreateInput($Quelle, 60, 80, 200)
$QuelleSuchen = GuiCtrlCreateButton("+", 265, 80, 20, 20)
GuiCtrlCreateLabel("Ziel:", 10, 113)
$Ziel = GUICtrlCreateInput($Ziel, 60, 110, 200)
$ZielSuchen = GuiCtrlCreateButton("+", 265, 110, 20, 20)
$weiter = GuiCtrlCreateButton("Weiter", 200, 150, 65)
$schliessen = GuiCtrlCreateButton("Schließen", 50, 150, 65)
$AllowedSize = GUICtrlRead($AllowedSize)
$Quelle = GUICtrlRead($Quelle)
$Ziel = GUICtrlRead($Ziel)
GUISetState()
While 1
$msg = GUIGetMsg()
Select
case $msg = $QuelleSuchen
$Quelle = FileSelectFolder("Den Quellordner auswählen:", "root dir", 2)
ExitLoop
case $msg = $ZielSuchen
$Ziel = FileSelectFolder("Den Zielordner auswählen:", "root dir", 3)
Case $msg = $contextInfo
MsgBox(64, "Informationen", "Der "&$SoftwareTitel&" wurde von Norman Schlorke entwickelt."&@LF&@LF&"Kontakt:"&@LF&"ICQ: 344-167-834"&@LF&"Mail: norman.schlorke@gmx.de")
Case $msg = $GUI_EVENT_CLOSE Or $msg = $schliessen
ExitLoop
Case $msg = $weiter
If $AllowedSize < 50 Or $AllowedSize > 5000 Then
MsgBox(48, "Fehler!", "Die Eingabe der Größe in Mbyte war nicht gültig:"&@LF&"Die Eingabe darf nur zwischen 50 und 5000 sein!")
ExitLoop
EndIf
$AllowedSize = $AllowedSize*1024*1024 ;Allowed Size in Byte umrechnen
GUIDelete()
GuiCreate($SoftwareTitel, 300, 250)
$alles = _FileListToArray($Quelle, "*.mp3")
$Anzahl = Ubound($alles)
If $Anzahl < 1 Then
MsgBox(48, "Fehler!", "Es wurden keine MP3-Dateien gefunden!"&@LF&@LF&$SoftwareTitel&" wird geschlossen!")
ExitLoop
EndIf
$Groesse = 0
$anzahlDateien = 0
DirRemove($Ziel,1)
DirCreate($Ziel)
MsgBox(64, "Dateien werden kopiert", "Dateien werden kopiert..."&@LF&"Das kann ein bisschen dauern.")
While $Groesse < $AllowedSize ;3758096384
$Zufall = Random(1,$Anzahl, 1)
$aktDatei = $Quelle&"\"&$alles[$Zufall]
$DateiGroesse = FileGetSize($aktDatei)
If $DateiGroesse > 20971520 Then
Else
FileCopy($aktDatei, $Ziel,8)
$anzahlDateien = $anzahlDateien+1
$Groesse = $Groesse + $DateiGroesse
EndIf
WEnd
GuiCtrlCreateLabel("Es wurden "&$anzahlDateien&" Dateien zufällig ausgewählt und kopiert.", 10, 123)
GuiCtrlCreateLabel("Insgesamt wurden "&Round($Groesse/1024/1024, 2)&" Mb kopiert.", 10, 163)
$schliessen = GuiCtrlCreateButton("Schließen", 50, 215, 65)
GUISetState()
EndSelect
WEnd
GUIDelete()
[/autoit] [autoit][/autoit] [autoit]Exit
[/autoit]