Rex Posted August 19, 2006 Share Posted August 19, 2006 Hi i do have one big prob. with this damnd script.expandcollapse popup; Generated by NewScript 4.5 #include <GUIConstants.au3>; Includes GUIConstants.au3 to script #include <file.au3> ; Opt's Start > -------------------------------------------------------------- ; Opt("RunErrorsFatal", 1) ;1=fatal, 0=silent set @error ; Opt("GUIOnEventMode", 0) ;0=disabled, 1=OnEvent mode enabled ; Opt("GUICloseOnESC", 1) ;1=ESC closes, 0=ESC won't close ; Opt("TrayIconDebug", 0) ;0=no info, 1=debug line info ; Opt("TrayMenuMode",0) ;0=append, 1=no default menu, 2=no automatic check, 4=menuitemID not return ; Opt("TrayOnEventMode",0) ;0=disable, 1=enable ; Opt("TrayIconHide", 0) ;0=show, 1=hide tray icon ; Opt("TrayAutoPause",1) ;0=no pause, 1=Pause ; Opt's End > ---------------------------------------------------------------- ; Script start Global $ahsLines[1][2], $TmpFile, $i, $Filename $Utility_Launcher = GUICreate(" Utility Launcher", 362, 206, 193, 126, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUPWINDOW,$WS_BORDER)) GUICtrlCreateLabel("", 16, 16, 4, 4) GUICtrlCreateLabel("Please choose ulility to launch", 16, 16, 328, 28, $SS_CENTER) GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0x0000FF) $Add_Utility = GUICtrlCreateButton("&Add", 192, 168, 75, 25, 0) GUICtrlSetTip(-1, "Adds a Utility to Launce") $Launch = GUICtrlCreateButton("&Launch", 16, 168, 75, 25, $BS_DEFPUSHBUTTON) GUICtrlSetTip(-1, "Launchec Selected Utility") $Exits = GUICtrlCreateButton("&Exit", 96, 168, 75, 25, 0) GUICtrlSetTip(-1, "Exits Launcher") $Utilitys_to_Launch = GUICtrlCreateTreeView(16, 40, 329, 113, BitOR($TVS_CHECKBOXES,$WS_BORDER), 0) $Remove_Utility = GUICtrlCreateButton("&Remove", 272, 168, 75, 25, 0) GUICtrlSetTip(-1, "Removes selceted Utility") GUISetState(@SW_SHOW) _Readline(); Reloads ini file into treeview While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Add_Utility $BF = 0 $TmpFile = FileOpenDialog("Utility to add", @ScriptDir, "Exe files (*.exe)", 3); Dim $szDrive, $szDir, $szFName, $szExt _PathSplit($TmpFile, $szDrive, $szDir, $szFName, $szExt); Retives only the file name (we do not need the path, course files must be inside the scriptDir) $Filename = $szFName & $szExt ;MsgBox(0, "Check 1", $szFName & $szExt) _AddItem() Case $Launch $Read1 = GUICtrlRead($Utilitys_to_Launch) MsgBox(0, "read", $Read1) If $Read1 <> "" Then ;Run(@ScriptDir & "\" & $Read1); Damned thing dont work :( EndIf Exit Case $Exits Exit Case $Remove_Utility _DeleteItem() EndSwitch WEnd Func _Addline() $i = 1 $Lines = _FileCountLines(@ScriptDir & "\" & "Config.ini") ReDim $ahsLines[$Lines][2] $file = FileOpen(@ScriptDir & "\" & "Config.ini", 0) Do $i = $lines $line = FileReadLine($file, $i) $ahsLines[$i-1][0] = $line $ahsLines[$i-1][1] = GuiCtrlCreateTreeViewItem($line, $Utilitys_to_Launch) Until $i = $lines FileClose($file) EndFunc Func _AddItem() FileWriteLine(@ScriptDir & "\" & "Config.ini", $Filename) $TmpFile = ""; Clears Tmp file FileCopy(@ScriptDir & "\" & "Config.ini", @ScriptDir & "\" & "Config.tmp", 1) _Addline() EndFunc Func _Readline() $i = 0 $Lines = _FileCountLines(@ScriptDir & "\" & "Config.ini") If Not $lines = 0 Then ReDim $ahsLines[$Lines][2] $file = FileOpen(@ScriptDir & "\" & "Config.ini", 0) Do $i = $i + 1 $line = FileReadLine($file, $i) $ahsLines[$i-1][0] = $line $ahsLines[$i-1][1] = GuiCtrlCreateTreeViewItem($line, $Utilitys_to_Launch) Until $i = $lines FileClose($file) EndIf EndFunc Func _DeleteItem() $read = GUICtrlRead($Utilitys_to_Launch) if $Read = 0 Then MsgBox(64, "Delete Item", "Nothing to delete, list is empty or item not checked") EndIf FileDelete(@ScriptDir & "\" & "Config.tmp") For $i = 0 To UBound($ahsLines) - 1 If BitAnd(GUICtrlRead($ahsLines[$i][1]), 1) Then GUICtrlDelete($ahsLines[$i][1]) $ahsLines[$i][1] = 0 If Not FileExists(@ScriptDir & "\" & "Config.tmp") Then; FileDelete(@ScriptDir & "\" & "Config.ini") FileWrite(@ScriptDir & "\" & "Config.ini", "") FileWrite(@ScriptDir & "\" & "Config.tmp", "") EndIf ContinueLoop Endif If $ahsLines[$i][1] Then FileWriteLine(@ScriptDir & "\" & "Config.tmp", $ahsLines[$i][0]) FileCopy(@ScriptDir & "\" & "Config.tmp", @ScriptDir & "\" & "Config.ini", 1) Next EndFuncI can't get the name of the selected treeview item, only the state 10, 11, 12 ect. did try to concole helpfile put no help for me there can any of you help me ???/Rex Link to comment Share on other sites More sharing options...
Xenobiologist Posted August 19, 2006 Share Posted August 19, 2006 Hi, I know that doen't help you, but why are you doing that with treeviewitems insted of checkboxes? So long, Mega Scripts & functions Organize Includes Let Scite organize the include files Yahtzee The game "Yahtzee" (Kniffel, DiceLion) LoginWrapper Secure scripts by adding a query (authentication) _RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...) Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc. MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times Link to comment Share on other sites More sharing options...
Danny35d Posted August 19, 2006 Share Posted August 19, 2006 (edited) @th.meger I think the reason is because the script is creating a dynamic list. It is easier to add a text to the TreeView than recreating the entier GUI to add another checkbox.Rex Give it a try...expandcollapse popup; Generated by NewScript 4.5 #include <GUIConstants.au3>; Includes GUIConstants.au3 to script #include <file.au3> ; Opt's Start > -------------------------------------------------------------- ; Opt("RunErrorsFatal", 1) ;1=fatal, 0=silent set @error ; Opt("GUIOnEventMode", 0) ;0=disabled, 1=OnEvent mode enabled ; Opt("GUICloseOnESC", 1) ;1=ESC closes, 0=ESC won't close ; Opt("TrayIconDebug", 0) ;0=no info, 1=debug line info ; Opt("TrayMenuMode",0) ;0=append, 1=no default menu, 2=no automatic check, 4=menuitemID not return ; Opt("TrayOnEventMode",0) ;0=disable, 1=enable ; Opt("TrayIconHide", 0) ;0=show, 1=hide tray icon ; Opt("TrayAutoPause",1) ;0=no pause, 1=Pause ; Opt's End > ---------------------------------------------------------------- ; Script start Global $ahsLines[1][2], $TmpFile, $i, $Filename $Utility_Launcher = GUICreate(" Utility Launcher", 362, 206, 193, 126, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUPWINDOW,$WS_BORDER)) GUICtrlCreateLabel("", 16, 16, 4, 4) GUICtrlCreateLabel("Please choose ulility to launch", 16, 16, 328, 28, $SS_CENTER) GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif") GUICtrlSetColor(-1, 0x0000FF) $Add_Utility = GUICtrlCreateButton("&Add", 192, 168, 75, 25, 0) GUICtrlSetTip(-1, "Adds a Utility to Launce") $Launch = GUICtrlCreateButton("&Launch", 16, 168, 75, 25, $BS_DEFPUSHBUTTON) GUICtrlSetTip(-1, "Launchec Selected Utility") $Exits = GUICtrlCreateButton("&Exit", 96, 168, 75, 25, 0) GUICtrlSetTip(-1, "Exits Launcher") $Utilitys_to_Launch = GUICtrlCreateTreeView(16, 40, 329, 113, BitOR($TVS_CHECKBOXES,$WS_BORDER), 0) $Remove_Utility = GUICtrlCreateButton("&Remove", 272, 168, 75, 25, 0) GUICtrlSetTip(-1, "Removes selceted Utility") GUISetState(@SW_SHOW) _Readline(); Reloads ini file into treeview While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Add_Utility $BF = 0 $TmpFile = FileOpenDialog("Utility to add", @ScriptDir, "Exe files (*.exe)", 3); Dim $szDrive, $szDir, $szFName, $szExt _PathSplit($TmpFile, $szDrive, $szDir, $szFName, $szExt); Retives only the file name (we do not need the path, course files must be inside the scriptDir) $Filename = $szFName & $szExt ;MsgBox(0, "Check 1", $szFName & $szExt) _AddItem() Case $Launch For $x = 0 To UBound($ahsLines) - 1 If BitAND(GUICtrlRead($ahsLines[$x][1]), $GUI_CHECKED) Then MsgBox(0, "read", $ahsLines[$x][0]) ;Run(@ScriptDir & "\" & $ahsLines[$x][0]); Damned thing dont work :( EndIf Next Case $Exits Exit Case $Remove_Utility _DeleteItem() EndSwitch WEnd Func _Addline() $i = 1 $Lines = _FileCountLines(@ScriptDir & "\" & "Config.ini") ReDim $ahsLines[$Lines][2] $file = FileOpen(@ScriptDir & "\" & "Config.ini", 0) Do $i = $lines $line = FileReadLine($file, $i) $ahsLines[$i-1][0] = $line $ahsLines[$i-1][1] = GuiCtrlCreateTreeViewItem($line, $Utilitys_to_Launch) Until $i = $lines FileClose($file) EndFunc Func _AddItem() FileWriteLine(@ScriptDir & "\" & "Config.ini", $Filename) $TmpFile = ""; Clears Tmp file FileCopy(@ScriptDir & "\" & "Config.ini", @ScriptDir & "\" & "Config.tmp", 1) _Addline() EndFunc Func _Readline() $i = 0 $Lines = _FileCountLines(@ScriptDir & "\" & "Config.ini") If Not $lines = 0 Then ReDim $ahsLines[$Lines][2] $file = FileOpen(@ScriptDir & "\" & "Config.ini", 0) Do $i = $i + 1 $line = FileReadLine($file, $i) $ahsLines[$i-1][0] = $line $ahsLines[$i-1][1] = GuiCtrlCreateTreeViewItem($line, $Utilitys_to_Launch) Until $i = $lines FileClose($file) EndIf EndFunc Func _DeleteItem() $read = GUICtrlRead($Utilitys_to_Launch) if $Read = 0 Then MsgBox(64, "Delete Item", "Nothing to delete, list is empty or item not checked") EndIf FileDelete(@ScriptDir & "\" & "Config.tmp") For $i = 0 To UBound($ahsLines) - 1 If BitAnd(GUICtrlRead($ahsLines[$i][1]), 1) Then GUICtrlDelete($ahsLines[$i][1]) $ahsLines[$i][1] = 0 If Not FileExists(@ScriptDir & "\" & "Config.tmp") Then; FileDelete(@ScriptDir & "\" & "Config.ini") FileWrite(@ScriptDir & "\" & "Config.ini", "") FileWrite(@ScriptDir & "\" & "Config.tmp", "") EndIf ContinueLoop Endif If $ahsLines[$i][1] Then FileWriteLine(@ScriptDir & "\" & "Config.tmp", $ahsLines[$i][0]) FileCopy(@ScriptDir & "\" & "Config.tmp", @ScriptDir & "\" & "Config.ini", 1) Next EndFuncNote: you already have the information in your array $ahsLinesIf you want to only run the first checked program, add ExitLoop after this line:;Run(@ScriptDir & "\" & $ahsLines[$x][0]); Damned thing dont work Edited August 19, 2006 by Danny35d AutoIt Scripts:NetPrinter - Network Printer UtilityRobocopyGUI - GUI interface for M$ robocopy command line Link to comment Share on other sites More sharing options...
Rex Posted August 19, 2006 Author Share Posted August 19, 2006 @th.meger I think the reason is because the script is creating a dynamic list. It is easier to add a text to the TreeView than recreating the entier GUI to add another checkbox. True, i finde it simpler to add items to a checklist/treeview with use of a ini file then to rebuild a checkbox gui every time i want a new utility in my launcher Rex Give it a try...Did that, works like a charme Note: you already have the information in your array $ahsLines that was what i thought to, but i dont understand how thoes dam... array'rs woks, the ones i use in my script was kindly provided by Lazycat for a nother script i did try to make longe time ago If you want to only run the first checked program, add ExitLoop after this line: ;Run(@ScriptDir & "\" & $ahsLines[$x][0]); Damned thing dont work Don that, was removed for testing Thx Danny, you saved my day Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now