Rex Posted February 13, 2013 Share Posted February 13, 2013 It's a simple Utility to add and launch Programs ect. from a media. I made it with USB in mind, but as i scripted i ended up with a prog that can be used for both usb, cd and dvd... The main window Contains a ListBox in where the items is been added, double clicking on an item launches the item with system default program for that file type. (Using ShellExecute) In the menu one can Add/Edit or Remove an Item to/from the ListBox. When Adding an item one can add a description about the Item, witch will be showed under the ListBox when the item is selected. expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=..\..\Ikoner\Flotte Ikoner\Icon 110.ico #AutoIt3Wrapper_Outfile=Launcher.exe #AutoIt3Wrapper_Res_Fileversion=1.0.0.0 #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <GUIListBox.au3> #include <StaticConstants.au3> #include <GuiMenu.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> #include <Array.au3> #include <file.au3> #include <String.au3> #include <ListBoxConstants.au3> Opt("GUIOnEventMode", 1) $IniFile = @ScriptDir & "\Launcher.ini" Global $sItemEditLaunchNameHex = "", $bAddItem = False, $bEditItem = False, $bAuto = False, $bReadOnly = False, $bFirstRun = True, $bAutoGUI = False, $bExeFile = False ; Checking if the launcher is runned from a read-only media $sType = DriveGetType(@ScriptDir & "\") ; Find the status of dir the script is runned from ; Main GUI start ---> #Region ### START Koda GUI section ### Form=F:\AutoIT3 Scripts\GUI Forms\hUtility_Launcher(USB).kxf $sGUITitle = "Utility Launcer" $hUtility_Launcher = GUICreate($sGUITitle, 363, 369, -1, -1, -1, BitOR($WS_EX_TOPMOST, $WS_EX_ACCEPTFILES, $WS_EX_APPWINDOW, $WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE)) $idMenuItems = GUICtrlCreateMenu("Items") $idMenuItemAdd = GUICtrlCreateMenuItem("Add items", $idMenuItems) GUICtrlSetOnEvent($idMenuItemAdd, "hMenuItemAddClick") $idMenuItemRemove = GUICtrlCreateMenuItem("Remove items", $idMenuItems) GUICtrlSetOnEvent($idMenuItemRemove, "hMenuItemRemoveClick") $idMenuItemEdit = GUICtrlCreateMenuItem("Edit Item", $idMenuItems) GUICtrlSetOnEvent($idMenuItemEdit, "hMenuItemEditClick") $MenuItemConfig = GUICtrlCreateMenu("Config") ;$MenuItemConfigLan = GUICtrlCreateMenuItem("Language", $MenuItemConfig) ;GUICtrlSetOnEvent($MenuItemConfigLan, "MenuItemConfigLanClick") $MenuItemConfigAutoRun = GUICtrlCreateMenuItem("Autorun", $MenuItemConfig) GUICtrlSetOnEvent($MenuItemConfigAutoRun, "MenuItemConfigAutoRunClick") $MenuItemConfigReadOnly = GUICtrlCreateMenuItem("Read only", $MenuItemConfig) GUICtrlSetTip($MenuItemConfigReadOnly, "This will make the Launcher.ini file Read-Only") GUICtrlSetOnEvent($MenuItemConfigReadOnly, "MenuItemConfigReadOnlyClick") GUISetOnEvent($GUI_EVENT_CLOSE, "hUtility_LauncherClose") $idLabelHeadLine = GUICtrlCreateLabel("Please choose utility to launch", 8, 16, 345, 28, $SS_CENTER) GUICtrlSetFont($idLabelHeadLine, 14, 400, 0, "MS Sans Serif") GUICtrlSetColor($idLabelHeadLine, 0x0000FF) $idListApps = GUICtrlCreateList("", 8, 48, 345, 201) GUICtrlSetTip($idListApps, "Double click to launch the selected App") $idLabelInfo = GUICtrlCreateLabel("Description / Info", 8, 256, 86, 17) $idEditItemDescription = GUICtrlCreateEdit("", 8, 272, 345, 65, BitOR($ES_AUTOVSCROLL, $ES_WANTRETURN, $WS_VSCROLL, $ES_READONLY)) GUISetState(@SW_HIDE) #EndRegion ### END Koda GUI section ### ; <--- Main gui End ; Add Item GUI Start ---> #Region ### START Koda GUI section ### Form=f:\autoit3 scripts\gui forms\usb launcher\hadd.kxf $hAddItem = GUICreate("Add item", 363, 209, -1, -1, -1, BitOR($WS_EX_ACCEPTFILES, $WS_EX_APPWINDOW, $WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE)) GUISetOnEvent($GUI_EVENT_CLOSE, "hAddItemClose") $idLabelItem = GUICtrlCreateLabel("Item", 8, 8, 24, 16) $idInputAddItemPath = GUICtrlCreateInput("", 8, 24, 233, 21) GUICtrlSetState($idInputAddItemPath, $GUI_DROPACCEPTED) GUICtrlSetTip($idInputAddItemPath, "You can drag an item to add it.") $idLabelBrowse = GUICtrlCreateLabel("Browse", 248, 8, 39, 16) $idAddRadioFile = GUICtrlCreateRadio("File", 248, 24, 35, 21) GUICtrlSetState($idAddRadioFile, $GUI_UNCHECKED) GUICtrlSetOnEvent($idAddRadioFile, "idRadioFileClick") $idAddRadioFolder = GUICtrlCreateRadio("Folder", 288, 24, 49, 21) GUICtrlSetState($idAddRadioFolder, $GUI_UNCHECKED) GUICtrlSetOnEvent($idAddRadioFolder, "idRadioFolderClick") $idLabelItemName = GUICtrlCreateLabel("Item Name to show in launch box", 8, 48, 161, 16) $idInputAddItemLaunchName = GUICtrlCreateInput("", 8, 64, 345, 21) GUICtrlSetTip($idInputAddItemLaunchName, "Item name to show in launchbox, if left blank item name will be used") $idLabelAddItemDescription = GUICtrlCreateLabel("Item Description", 8, 88, 80, 16) $idEditAddItemDescription = GUICtrlCreateEdit("", 8, 104, 345, 65, BitOR($ES_AUTOVSCROLL, $ES_WANTRETURN, $WS_VSCROLL)) $idButtonAdd = GUICtrlCreateButton("Add", 8, 176, 75, 25) GUICtrlSetOnEvent($idButtonAdd, "idButtonAddClick") $idButtonAddCancel = GUICtrlCreateButton("Cancel", 280, 176, 75, 25) GUICtrlSetOnEvent($idButtonAddCancel, "idButtonAddCancelClick") GUISetOnEvent($GUI_EVENT_DROPPED, "_Droppede") GUISetState(@SW_HIDE) #EndRegion ### END Koda GUI section ### ; <--- Add Item GUI End ; Edit Item GUI start ---> #Region ### START Koda GUI section ### Form=F:\AutoIT3 Scripts\GUI Forms\USB Launcher\hedit.kxf $hEditItem = GUICreate("Edit item", 363, 209, -1, -1, -1, BitOR($WS_EX_APPWINDOW, $WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE)) GUISetOnEvent($GUI_EVENT_CLOSE, "hEditItemClose") $idLabelEditItem = GUICtrlCreateLabel("Item", 8, 8, 24, 16) $idInputEditItemPath = GUICtrlCreateInput("", 8, 24, 233, 21) GUICtrlSetState($idInputEditItemPath, $GUI_DROPACCEPTED) GUICtrlSetTip($idInputEditItemPath, "You can drag an tiem to add it.") $idLabelBrowse = GUICtrlCreateLabel("Browse", 248, 8, 39, 16) $idEditRadioFile = GUICtrlCreateRadio("File", 248, 24, 35, 21) GUICtrlSetOnEvent($idEditRadioFile, "idRadioFileClick") $idEditRadioFolder = GUICtrlCreateRadio("Folder", 288, 24, 49, 21) GUICtrlSetOnEvent($idEditRadioFolder, "idRadioFolderClick") $idLabelEditItemName = GUICtrlCreateLabel("Item Name to show in launch box", 8, 48, 161, 16) $idInputEditItemLaunchName = GUICtrlCreateInput("", 8, 64, 345, 21) GUICtrlSetTip($idInputEditItemLaunchName, "Item name to show in launchbox, if left blank item name will be used") $idLabelItemDescription = GUICtrlCreateLabel("Item Description", 8, 88, 80, 16) $idEditEditItemDescription = GUICtrlCreateEdit("", 8, 104, 345, 65, BitOR($ES_AUTOVSCROLL, $ES_WANTRETURN, $WS_VSCROLL)) $idButtonEditSave = GUICtrlCreateButton("Save", 8, 176, 75, 25) GUICtrlSetOnEvent($idButtonEditSave, "idButtonEditSaveClick") $idButtonEditCancel = GUICtrlCreateButton("Cancel", 280, 176, 75, 25) GUICtrlSetOnEvent($idButtonEditCancel, "idButtonEditCancelClick") GUISetOnEvent($GUI_EVENT_DROPPED, "_Droppede") GUISetState(@SW_HIDE) #EndRegion ### END Koda GUI section ### ; <--- Edit Item GUI End #Region ### START Koda GUI section ### Form=F:\AutoIT3 Scripts\GUI Forms\USB Launcher\hAutoRun.kxf $hAutoRun = GUICreate("Autorun generator", 363, 209, -1, -1, -1, BitOR($WS_EX_APPWINDOW,$WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE)) GUISetOnEvent($GUI_EVENT_CLOSE, "hAutoRunClose") $idLabelExeFile = GUICtrlCreateLabel("Name of the executible file to be launched", 8, 8, 203, 17) $idInputExeFile = GUICtrlCreateInput("", 8, 24, 297, 21) $idLabelBrowseExeFile = GUICtrlCreateLabel("Browse", 312, 8, 39, 17) $idRadioExeFile = GUICtrlCreateRadio("File", 312, 24, 35, 21, $BS_PUSHLIKE) GUICtrlSetOnEvent($idRadioExeFile, "idRadioExeFileClick") $idLabelIcon = GUICtrlCreateLabel("Icon Path", 8, 48, 50, 17) $idInputIcon = GUICtrlCreateInput("", 8, 64, 297, 21) GUICtrlSetTip($idInputIcon, "Icon to be showed in Explorer ect.") $idRadioIcon = GUICtrlCreateRadio("File", 312, 64, 35, 21, $BS_PUSHLIKE) GUICtrlSetOnEvent($idRadioIcon, "idRadioIconclick") $idLabelBrowseIcon = GUICtrlCreateLabel("Browse", 312, 48, 39, 17) $idLabelAction = GUICtrlCreateLabel("Action", 8, 88, 34, 17) $idInputAction = GUICtrlCreateInput("", 8, 104, 345, 21) $idLabelLabel = GUICtrlCreateLabel("Label", 8, 128, 36, 16) $idInputLabel = GUICtrlCreateInput("", 8, 144, 345, 21) $idButtonGenerate = GUICtrlCreateButton("Generate", 8, 176, 75, 25, $BS_DEFPUSHBUTTON) GUICtrlSetOnEvent($idButtonGenerate, "idButtonGenerateClick") $idButtonAutoCancle = GUICtrlCreateButton("Cancel", 280, 176, 75, 25) GUICtrlSetOnEvent($idButtonAutoCancle, "idButtonAutoCancleClick") GUISetState(@SW_HIDE) #EndRegion ### END Koda GUI section ### ;Getting info when the user clicks an item in the ListBox GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") _Startup() While 1 Sleep(100) WEnd Func _Startup() ; Checking if inifile is read-only $sFile = FileGetAttrib($IniFile) ; Checking if Launcher is set in Read-Only mode by User $iReadOnly = IniRead($IniFile, "Config", "Menu", "1") ; Using info from Read-Only checks at the script start ; If either the launcher is runned from a CDROM drive, if the inifile is made Read-only or Menu is Set to "0" in Ini file, we disable the menu If $sType = "CDROM" Or StringInStr($sFile, "R") Or $iReadOnly = "0" Then ; Disabling Menu GUICtrlSetState($idMenuItems, $GUI_DISABLE) GUICtrlSetState($MenuItemConfig, $GUI_DISABLE) ; Setting Menu item test to Blank, Makes the menu look not ther... GUICtrlSetData($idMenuItems, "") GUICtrlSetData($MenuItemConfig, "") EndIf ; If it the first time the Launcher launches we do a Splashimage thing If $bFirstRun = True Then _Splash() ; Showind main menu GUISetState(@SW_SHOW, $hUtility_Launcher) ; ListBox and Edit handling ===> ; Clearing existing entrys in listBox before updating (if any should exist) _GUICtrlListBox_ResetContent($idListApps) ; Clearing description if any GUICtrlSetData($idEditItemDescription, "") ; Reads inifile and updates ListBox $asItems = IniReadSectionNames($IniFile) ; Reading all sections from the Launcher.ini $sConfig = _ArraySearch($asItems, "Config") ; Searching for the Section [Config] ; Deliting the first entry in Array. _ArrayDelete($asItems, 0); This is the entry who tells how many Items the array contains, if we keep it til will be loaded into the listbox as "0x5" ; Using the result of array search If $sConfig <> -1 Then _ArrayDelete($asItems, $sConfig) ; If the [Config] section exsist, we delete it - if we keep it it will be loaded into the listbox ;Sorting array _ArraySort($asItems) ; Sorting list array ; Adding Items to ListBox ; Using Ubound to get total items of Array, and running loop to add Items to listbox. For $i = 0 To UBound($asItems) -1 ; Running loop until $i = the result of Ubound -1 ; Dehexing and Adds Read Item Names to ListBox _GUICtrlListBox_AddString($idListApps, _HexToString($asItems[$i])) ; Data writen to the ini file is writen in hex, so when loading the "list" we needs to dehex the entrys Next EndFunc ; Splash image Func _Splash() If $sType = "CDROM" Then ; Choosing SplashImage ; Fetching pic from Resurses Local $destination = "CD-Rom.jpg" SplashImageOn("", $destination, 300, 325, -1 ,-1 , 1) Sleep(3000) SplashOff() Else Local $destination = "USB.jpg" SplashImageOn("", $destination, 200, 450, -1 ,-1 , 1) Sleep(3000) SplashOff() EndIf $bFirstRun = False ; Setting Firstlaunch to False EndFunc #region Main Functions ; Menu item add Func hMenuItemAddClick() ; Getting pos of Launcher window Local $size = WinGetPos($hUtility_Launcher) ; Moving Add Items windows to the pos of Launcer window WinMove($hAddItem, "", $size[0], $size[1]) ; Shows Add Item GUI GUISetState(@SW_SHOW, $hAddItem) $bAddItem = True ; Hides Launcher GUI GUISetState(@SW_HIDE, $hUtility_Launcher) EndFunc ;==>hMenuItemAddClick ; Editing previous added item Func hMenuItemEditClick() ; Getting name of the selected item $iIndex = _GUICtrlListBox_GetCurSel($idListApps) ; Getting Index of Item selected with the mouse $sName = _GUICtrlListBox_GetText($idListApps, $iIndex) ; Getting txt for item selected with use of the result in $iIndex If $sName <> "" Then ; Check for empyt string $sItemEditLaunchNameHex = _StringToHex($sName) ; Hexing result of $sName, so we can search for it in the ini file $sItems2Edit = IniReadSection($IniFile, $sItemEditLaunchNameHex) ; Reading section in ini file using the hexed name If Not @error Then Local $size = WinGetPos($hUtility_Launcher) ; Moving Add Items windows to the pos of Launcer window GUICtrlSetData($idInputEditItemPath, _HexToString($sItems2Edit[1][1])) GUICtrlSetData($idInputEditItemLaunchName, _HexToString($sItems2Edit[2][1])) GUICtrlSetData($idEditEditItemDescription, _HexToString($sItems2Edit[3][1])) WinMove($hEditItem, "", $size[0], $size[1]) WinActivate($hEditItem, "") GUISetState(@SW_HIDE, $hUtility_Launcher) GUISetState(@SW_SHOW,$hEditItem) $bEditItem = True GUISetState($GUI_FOCUS,$hEditItem) else Return EndIf EndIf EndFunc ;==>hMenuItemEditClick Func hMenuItemRemoveClick() ; Getting name of selected item $iIndex = _GUICtrlListBox_GetCurSel($idListApps) ; Getting Index of selectet item $sName = _GUICtrlListBox_GetText($idListApps, $iIndex) ; getting the name of the selected item, by using the result of $iIndex ; Removes the selectet item from ListBox and inifile _GUICtrlListBox_DeleteString($idListApps, $iIndex) ; Removing the slelected item from ListBox IniDelete($IniFile, _StringToHex($sName)) ; Removing item from ini file. _Startup() ; refreshes Listbox by calling the Startup function EndFunc ;==>hMenuItemRemoveClick Func hUtility_LauncherClose() Exit ; Closes program EndFunc ;==>hUtility_LauncherClose Func MenuItemConfigAutoRunClick() ; Getting Pos of Launcher window Local $size = WinGetPos($hUtility_Launcher) ; Moving Add Items windows to the pos of Launcer window WinMove($hAutoRun, "", $size[0], $size[1]) WinActivate($hAutoRun, "") GUISetState(@SW_HIDE, $hUtility_Launcher) GUISetState(@SW_SHOW,$hAutoRun) GUISetState($GUI_FOCUS,$hAutoRun) $bAutoGUI = True EndFunc ;==>MenuItemConfigAutoRunClick Func MenuItemConfigLanClick() EndFunc ;==>MenuItemConfigLanClick Func MenuItemConfigReadOnlyClick() ; Set Launcher.ini to Read-Only #Region --- CodeWizard generated code Start --- ;MsgBox features: Title=Yes, Text=Yes, Buttons=Yes and No, Icon=Info, Miscellaneous=Top-most attribute If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer $iMsgBoxAnswer = MsgBox(262212,"Read-Only","This will set the Launcher.ini to Read-Only state!" & @CRLF & @CRLF & "When in Read-Only state the menus is dissabled," & @CRLF & "preventing the option to Add, Remove or Edit" & @CRLF & "Items in the Launch list." & @CRLF & @CRLF & "To enable the Menu Items, an the options to" & @CRLF & "Add, Remove And Edit Items in the Launcher List," & @CRLF & 'remove the "R" attrib from the Launcher.ini' & @CRLF & 'and change the value "Menu" in [Config] from 0 to 1' & @CRLF & "in the Launcher.ini file." & @CRLF & @CRLF & 'To enable Read-Only press "Yes", the efect will be immediately!') Select Case $iMsgBoxAnswer = 6 ;Yes IniWrite($IniFile, "Config", "Menu", "0") FileSetAttrib($IniFile, "R") $bReadOnly = True _Startup() Case $iMsgBoxAnswer = 7 ;No Return EndSelect #EndRegion --- CodeWizard generated code End --- EndFunc ;==>MenuItemConfigReadOnlyClick #endregion Main Functions #region AddItem Functions Func hAddItemClose() GUICtrlSetData($idInputAddItemPath, "") ; Clearing the Item Input GUICtrlSetData($idInputAddItemLaunchName, "") ; Clearing the Item Name Input (Name showed in the ListBox view) GUICtrlSetData($idEditAddItemDescription, "") ; Clearing the Edit (Item Description) GUICtrlSetState($idAddRadioFile, $GUI_UNCHECKED) GUICtrlSetState($idAddRadioFolder, $GUI_UNCHECKED) GUISetState(@SW_SHOW, $hUtility_Launcher) $bAddItem = False GUISetState(@SW_HIDE, $hAddItem) ; Hides the gui EndFunc ;==>hAddItemClose Func idButtonAddCancelClick() hAddItemClose() EndFunc ;==>idButtonAddCancelClick Func idButtonAddClick() ; Getting info from Inputboxes $sAddItemPath = GUICtrlRead($idInputAddItemPath) If $sAddItemPath = "" Then #Region --- CodeWizard generated code Start --- ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Critical, Miscellaneous=Top-most attribute MsgBox(262160,"Item path","No item path was choosen!!" & @CRLF & "Please choose a Item or hit cancle" & @CRLF & "to get back to the Launcher window...") #EndRegion --- CodeWizard generated code End --- GUICtrlSetState($idInputAddItemPath, $GUI_FOCUS) Return EndIf $sAddItemLaunchName = GUICtrlRead($idInputAddItemLaunchName) If $sAddItemLaunchName = "" Then #Region --- CodeWizard generated code Start --- ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Critical, Miscellaneous=Top-most attribute MsgBox(262160,"Launch Name","No Launch name was choose!!" & @CRLF & "Please Write a name for the item, or hit" & @CRLF & "Cancel to get back to the Launcher window...") #EndRegion --- CodeWizard generated code End --- GUICtrlSetState($idInputAddItemLaunchName, $GUI_FOCUS) Return EndIf $sAddItemDescription = GUICtrlRead($idEditAddItemDescription) _AddItem($sAddItemPath, $sAddItemLaunchName, $sAddItemDescription) EndFunc ;==>idButtonAddClick #endregion AddItem Functions ; Radio clicks handling ; Radios is pressent in both add and edit gui. Func idRadioFileClick() ; Browse for file to add $sFilePath = FileOpenDialog("Choose File to add to launcer", @ScriptDir, "All files (*.*)", 1 + 2) If $sFilePath = "" Then Return If $bAddItem = True Then GUICtrlSetState($idAddRadioFile, $GUI_UNCHECKED) GUICtrlSetState($idInputAddItemLaunchName, $GUI_FOCUS) Else GUICtrlSetState($idEditRadioFile, $GUI_UNCHECKED) GUICtrlSetState($idInputEditItemLaunchName, $GUI_FOCUS) EndIf _ItemPaths($sFilePath) EndFunc ;==>idRadioFileClick Func idRadioFolderClick() ; Browse for folder to add $sFolderPath = FileSelectFolder("Choose a folder.", @ScriptDir) ; Caling the ItemPath function to get the realative path of the selected folder If $bAddItem = True Then GUICtrlSetState($idAddRadioFolder, $GUI_UNCHECKED) GUICtrlSetState($idInputAddItemLaunchName, $GUI_FOCUS) Else GUICtrlSetState($idEditRadioFolder, $GUI_UNCHECKED) GUICtrlSetState($idInputEditItemLaunchName, $GUI_FOCUS) EndIf _ItemPaths($sFolderPath) EndFunc ;==>idRadioFolderClick Func _ItemPaths($sPath) Dim $szDrive, $szDir, $szFName, $szExt $sRet = _PathSplit($sPath, $szDrive, $szDir, $szFName, $szExt); Retives only the file name (we do not need the path, course files must be inside the scriptDir) ; Checking Item path, if outside @ScriptDir we warn and clear searsh result ; getting the len of the @ScriptDir $iScriptPath = StringLen(@ScriptDir) ; Geting the len of the selected item path $iFileFullPath = StringLen($sPath) $iFilePath = StringLen($sRet[1] & $sRet[2]) ; getting the left most char form the item path, using the result of the len for @scriptDir ; We need this to check if the Item was selected inside the ROOT dir or a sub dir of the ROOT dir of the Launcher $sStringTrim = StringLeft($sPath, $iScriptPath) ; Math thing :) ; The file path we adds to the input should be relative to the launcher path so we take the len og the fullpath and substracts the len of the scriptpath $iFilePathAddTotal = $iFileFullPath - $iScriptPath ; The result of $iFilePathAddTotal we use to return the realitive path of the Item by doing a stringright, we substract -1 more the the result becourse @ScriptDir don't return a trailing \ $sFilePathAdd = StringRight($sPath, $iFilePathAddTotal - 1) ; If $sStringTrim <> @ScriptDir Then #Region --- CodeWizard generated code Start --- ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Critical MsgBox(16, "Item not in Root dir", "The selected item needs to be in the same" & @CRLF & "root dir (" & @ScriptDir & ") of the launcer file or a subfolder of the" & @CRLF & "launcher root dir (" & @ScriptDir & "\My Folder),") If $bAddItem = True Then GUICtrlSetData($idInputAddItemPath, "") GUICtrlSetState($idInputAddItemPath, $GUI_FOCUS) Return ElseIf $bEditItem = True Then GUICtrlSetData($idInputEditItemPath, "") GUICtrlSetState($idInputEditItemPath, $GUI_FOCUS) Return ElseIf $bExeFile = True Then GUICtrlSetData($idInputExeFile, "") GUICtrlSetState($idInputExeFile, $GUI_FOCUS) Else GUICtrlSetData($idInputIcon, "") GUICtrlSetState($idInputIcon, $GUI_FOCUS) EndIf Else If $bAddItem = True Then GUICtrlSetData($idInputAddItemPath, $sFilePathAdd) GUICtrlSetState($idInputAddItemLaunchName, $GUI_FOCUS) ElseIf $bEditItem = True Then GUICtrlSetData($idInputEditItemPath, $sFilePathAdd) GUICtrlSetState($idInputEditItemLaunchName, $GUI_FOCUS) ElseIf $bExeFile = True Then GUICtrlSetData($idInputExeFile, $sFilePathAdd) GUICtrlSetState($idInputIcon, $GUI_FOCUS) Else GUICtrlSetData($idInputIcon, $sFilePathAdd) GUICtrlSetState($idInputAction, $GUI_FOCUS) EndIf EndIf #EndRegion --- CodeWizard generated code Start --- EndFunc Func _Droppede() $sPath = @GUI_DragFile MsgBox(0, "Draged file ", "File draged = " & $sPath) _ItemPaths($sPath) EndFunc #region Edit Item Functions Func hEditItemClose() GUISetState(@SW_HIDE, $hEditItem) ; Hides the gui GUICtrlSetData($idInputEditItemPath, "") ; Clearing the Item Input GUICtrlSetData($idInputEditItemLaunchName, "") ; Clearing the Item Name Input (Name showed in the ListBox view) GUICtrlSetData($idEditItemDescription, "") ; Clearing the Edit (Item Description) GUISetState(@SW_SHOW, $hUtility_Launcher) EndFunc ;==>hEditItemClose Func idButtonEditCancelClick() hEditItemClose() EndFunc ;==>idButtonEditCancelClick Func idButtonEditSaveClick() ; Old entry ;$sItemEditLaunchNameHex ; Getting data from Inputs $sEditInputPath = GUICtrlRead($idInputEditItemPath) $sEditInputName = GUICtrlRead($idInputEditItemLaunchName) $sEditInputDesc = GUICtrlRead($idEditEditItemDescription) If _StringToHex($sEditInputName) <> $sItemEditLaunchNameHex Then ; If string is updated we delete the old one IniDelete($IniFile, $sItemEditLaunchNameHex) EndIf ; Writing Edited Item info to inifile IniWrite($IniFile, _StringToHex($sEditInputName), "1", _StringToHex($sEditInputPath)) IniWrite($IniFile, _StringToHex($sEditInputName), "2", _StringToHex($sEditInputName)) IniWrite($IniFile, _StringToHex($sEditInputName), "3", _StringToHex($sEditInputDesc)) _Startup() hEditItemClose() EndFunc ;==>idButtonEditSaveClick #endregion Edit Item Functions #region Autorun Functions Func hAutoRunClose() GUISetState(@SW_HIDE, $hAutoRun) GUISetState(@SW_SHOW, $hUtility_Launcher) GUICtrlSetData($idInputExeFile, "") GUICtrlSetData($idInputIcon, "") GUICtrlSetData($idInputAction, "") GUICtrlSetData($idInputLabel, "") $bAutoGUI = False EndFunc Func idButtonAutoCancleClick() hAutoRunClose() EndFunc Func idButtonGenerateClick() ; Reading inputs $sExe = GUICtrlRead($idInputExeFile) $sIcon = GUICtrlRead($idInputIcon) $sAction = GUICtrlRead($idInputAction) $sLabel = GUICtrlRead($idInputLabel) If $sExe <> "" Then IniWrite(@ScriptDir & "\Autorun.inf", "Autorun", "Open", $sExe) Else #Region --- CodeWizard generated code Start --- ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Critical, Miscellaneous=Top-most attribute MsgBox(262160,"Autorun","No file to run selected!!" & @CRLF & "Please select a file, or use cancel" & @CRLF & "to get back to Launcher window!") #EndRegion --- CodeWizard generated code End --- Return EndIf IniWrite(@ScriptDir & "\Autorun.inf", "Autorun", "Icon", $sIcon) IniWrite(@ScriptDir & "\Autorun.inf", "Autorun", "Action", $sAction) IniWrite(@ScriptDir & "\Autorun.inf", "Autorun", "Lable", $sLabel) #Region --- CodeWizard generated code Start --- ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Info, Miscellaneous=Top-most attribute MsgBox(262208,"Autorun","Autorun.inf created with following info:" & @CRLF & @CRLF & "[Autorun]" & @CRLF & "Open = "& $sExe & @CRLF & "Icon = " & $sIcon & @CRLF & "Action = " &$sAction & @CRLF & "Label = " & $sLabel) #EndRegion --- CodeWizard generated code End --- hAutoRunClose() EndFunc Func idRadioExeFileClick() $sFilePath = FileOpenDialog("Choose File to add to launcer", @ScriptDir, "Exe files (*.Exe)", 1 + 2) If $sFilePath = "" Then Return $bExeFile = True _ItemPaths($sFilePath) EndFunc Func idRadioIconclick() $sFilePath = FileOpenDialog("Choose File to add to launcer", @ScriptDir, "Exe files or Icons (*.Exe;*.Ico)", 1 + 2) If $sFilePath = "" Then Return $bExeFile = False _ItemPaths($sFilePath) EndFunc #endregion ; Adding selected to INI file and updates the ListBox. Func _AddItem($sItemPath, $sItemLaunchName, $sItemDescription) ; Converting Entrys to hex $sItemPathHex = _StringToHex($sItemPath) ; Cleaning up the Launchname with a String Prob $sItemLaunchNameHex = _StringToHex($sItemLaunchName) $sItemDescriptionHex = _StringToHex($sItemDescription) ; Checking if added Item Already exists $sCheckForDublets = IniReadSectionNames($IniFile) $sDubletCheck = _ArraySearch($sCheckForDublets, $sItemLaunchNameHex) if $sDubletCheck = -1 Then ; Writing Item info to inifile IniWrite($IniFile, $sItemLaunchNameHex, "1", $sItemPathHex) IniWrite($IniFile, $sItemLaunchNameHex, "2", $sItemLaunchNameHex) IniWrite($IniFile, $sItemLaunchNameHex, "3", $sItemDescriptionHex) _Startup() hAddItemClose() Else #Region --- CodeWizard generated code Start --- ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Warning, Miscellaneous=Top-most attribute MsgBox(262192,"Item Name","The typed item name: " & $sItemLaunchName & " is already in use!" & @CRLF & @CRLF & "Please choose another name for the item.") #EndRegion --- CodeWizard generated code End --- GUICtrlSetData($idInputAddItemLaunchName, "") Return EndIf EndFunc ;==>_AddItem Func _GetDescription($sItemName) ; Read inifile to get item description) If $sItemName = "" Then Return $sInfo = IniRead($IniFile, _StringToHex($sItemName), "3", "No info") GUICtrlSetData($idEditItemDescription, _HexToString($sInfo)) EndFunc Func _LaunchSelected($sApp2Launch) ; get Item path $s2Hex = _StringToHex($sApp2Launch) $sItemPath = IniRead($IniFile, $s2Hex, "1", "ERROR") $sFromHex = _HexToString($sItemPath) ShellExecute($sFromHex) GUISetState(@SW_MINIMIZE, $hUtility_Launcher) EndFunc Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam) #forceref $hWnd, $iMsg Local $hWndFrom, $iIDFrom, $iCode, $hWndListBox If Not IsHWnd($idListApps) Then $hWndListBox = GUICtrlGetHandle($idListApps) $hWndFrom = $ilParam $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word $iCode = BitShift($iwParam, 16) ; Hi Word Switch $hWndFrom Case $idListApps, $hWndListBox Switch $iCode Case $LBN_DBLCLK ; Sent when the user double-clicks a string in a list box $iIndex = _GUICtrlListBox_GetCurSel($idListApps) $sSelected = _GUICtrlListBox_GetText($idListApps, $iIndex) _LaunchSelected($sSelected) Case $LBN_ERRSPACE ; Sent when a list box cannot allocate enough memory to meet a specific request ; no return value Case $LBN_KILLFOCUS ; Sent when a list box loses the keyboard focus ; no return value Case $LBN_SELCANCEL ; Sent when the user cancels the selection in a list box ; no return value Case $LBN_SELCHANGE ; Sent when the selection in a list box has changed $iIndex = _GUICtrlListBox_GetCurSel($idListApps) $sSelected = _GUICtrlListBox_GetText($idListApps, $iIndex) _GetDescription($sSelected) Case $LBN_SETFOCUS ; Sent when a list box receives the keyboard focus ; no return value EndSwitch EndSwitch ; Proceed the default AutoIt3 internal message commands. ; You also can complete let the line out. ; !!! But only 'Return' (without any value) will not proceed ; the default AutoIt3-message in the future !!! Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND Only thing i missed was to add and Use the Splash Images from Recurses, never could found out how to that c;") / Rex 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