Hiho,
ich mal wieder. habe ein Script geschrieben, in dem man 5 Programme/ Dateien seiner Wahl starten kann. Da man aber nie genau sagen kann, wieviele solcher Sachen jmd braucht, wollte ich das erweitern.
Dazu dachte ich mir, mach ich Gui...List, in das man seine Programme adden kann.
Frage 1:
gibt es eine möglichkeit, wie bei gui..input, files per drag&drop hinzuzufügen? (original übernommen von der inputbox geht es nicht)?
Frage 2:
wie schaffe ich es, einen button remove zu erstellen, der aber jeweils nur das aktuell makierte "tool" aus der liste entfernt?
Frage 3:
Spoiler anzeigen
alle programme müssten anschließend in einer ini gespeichert werden, aber wie genau? ich müsste eine schleife durchlaufen, die, solange eine zeile in der liste nicht leer ist, die einzelnen dateien, fortlaufend nummeriert, in die ini schreibt oO
Frage 4:
Spoiler anzeigen
das gleiche müsste dann beim start des programmes passieren. eine schleife wird durchlaufen und liest ein tool nach dem anderen aus der ini. könnte man aber sicher von Frage 3 umbauen.
script sieht zZ so aus (funzt aber halt noch net alles *g*):
PS: updated --- frage 3 hab ich rausgefunden (dank engl. forum)
PS: updated² --- frage 4 auch erledigt
Spoiler anzeigen
#include <guiconstants.au3>
#include <array.au3>
#include <GuiList.au3>
$script = "S.T.A.R.T.E.R"
$ini = ($script & "-Settings.ini")
If FileExists($ini) then
$var = IniReadSection ( $ini, "Run after Start")
For $i = 1 To $var[0][0]
Run(@ComSpec & ' /c "' & $var[$i][1] & '"', "", @SW_HIDE)
Next
Else
;create tool-gui
$guitool = GUICreate("Tool-Settings", 300, 250, -1, -1, -1, $WS_EX_ACCEPTFILES)
WinSetTrans($guitool, "", 240)
$ok3 = GUICtrlCreateButton("&Ok", 20, 220, 70)
$cancel3 = GUICtrlCreateButton("&Cancel", 220, 220, 70)
$toollist = GUICtrlCreateList("", 80, 20, 210, 190)
GUICtrlSetState(-1, $GUI_DROPACCEPTED )
$add = GUICtrlCreateButton("&Add", 10, 20, 60)
GUICtrlSetTip($add, "Here you can browse for a tool (or something else) you want to start")
$remove = GUICtrlCreateButton("&Remove", 10, 50, 60)
GUICtrlSetTip($remove, "Remove the seleted item")
GUISetState(@SW_SHOW, $guitool)
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg(1)
Select
case $msg[0] = $gui_event_close And $msg[1] = $guitool
Exit
Case $msg[0] = $cancel3 And $msg[1] = $guitool
Exit
case $msg[0] = $add And $msg[1] = $guitool
$file1 = FileOpenDialog("Open File", "", "Alle (*.*)" , 1 + 2)
GUICtrlSetData($toollist, $file1)
case $msg[0] = $remove And $msg[1] = $guitool
$remove = GUICtrlRead($toollist)
GUICtrlSetData($toollist, $remove)
case $msg[0] = $ok3 And $msg[1] = $guitool
$alltext = _GUICtrlListGetAllText($toollist)
For $i = 1 to $alltext[0]
IniWrite(@scriptdir & "\" & $ini, "Run after Start", $i, $alltext[$i])
Next
Exit
EndSelect
WEnd
EndIf
Func _GUICtrlListGetAllText($listbox)
Dim $listinfo, $returntext
$listinfo = _GUICtrlListGetInfo($listbox)
Dim $returntext[$listinfo + 1]
$returntext[0] = $listinfo
If $listinfo = 0 Then
Return $returntext
EndIf
For $i = 0 to ($returntext[0] - 1)
$returntext[$i + 1] = _GUICtrlListGetText($listbox, $i)
Next
Return $returntext
EndFunc