Sign in to follow this  
Followers 0
Mat

Quick launcher

1 post in this topic

A very successful spin off from a considerably larger project to test the GUI and hotkeys, that I'm now using all the time, so thought I might share.

No settings, as I've just spent a long time writing an 800 line (and growing) settings dialog for the parent project, and have no intentions of a repeat of that ordeal. If you want to change something then edit the source code!

Cool stuff:

* Drag & drop onto the creation wizard checks the filetype, and changes the data dependent on that. Try an au3.

* Most of the code is the creation wizard. The actual program is tiny.

* Hotkey + GUI combo works well, and the auto-hide feature.

#NoTrayIcon

If WinExists ("Quick launcher") Then ProcessClose (WinGetProcess ("Quick launcher"))
AutoItWinSetTitle ("Quick launcher")

Opt ("GUIOnEventMode",   1)
Opt ("GUIResizeMode" , 802)

Global $ahIcons[1] = [0]

Global $hGUI = GUICreate ("Run snippet", 254, 34, 0, 0, 0x86000000, 152)
   GUISetOnEvent (-3, "_HideGUI")
   GUISetOnEvent (-13, "_Dropped")
   GUISetBkColor (0xFFFFFF)

   Local $aIcons = _RegReadSectionNames ("HKEY_LOCAL_MACHINE\SOFTWARE\Quick launcher\Icons"), $nTier = 0
   If $aIcons[0] = 0 Then
      MsgBox (16, "Error", "No Icons!")
      _CreateIconWizard ()
      Exit
   EndIf
   $ahIcons = $aIcons
   For $i = 1 to $aIcons[0]
      If Mod ($i, 10) = 0 Then $nTier += 1
      $sIcon = _RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Quick launcher\Icons\" & $aIcons[$i], "Icon", @SystemDir & "\shell32.dll,0")
      $nInd = StringRegExpReplace ($sIcon, ".*,(\d+)\z", "\1") + 0
      $sIcon = StringRegExpReplace ($sIcon, "(.*),\d+\z", "\1")
      $ahIcons[$i] = GUICtrlCreateIcon ($sIcon, $nInd, 4 + (Mod ($i - 1, 10) * 36), 2 + $nTier * 36, 32, 32)
         GUICtrlSetOnEvent (-1, "_EventClicked")
         GUICtrlSetCursor (-1, 0)
         GUICtrlSetTip (-1, $aIcons[$i])
         GUICtrlSetState (-1, 8)
         $hCxt = GUICtrlCreateContextMenu ($ahIcons[$i])
            GUICtrlCreateMenuItem ($aIcons[$i], $hCxt)
               GUICtrlSetOnEvent (-1, "_MenuClicked")
            GUICtrlCreateMenuItem ("", $hCxt)
            GUICtrlCreateMenuItem ("Add Icon", $hCxt)
               GUICtrlSetOnEvent (-1, "_CreateIconWizard")
            GUICtrlCreateMenuItem ("delete: " & $aIcons[$i], $hCxt)
               GUICtrlSetOnEvent (-1, "_MenuClicked")
            GUICtrlCreateMenuItem ("edit: " & $aIcons[$i], $hCxt)
               GUICtrlSetOnEvent (-1, "_MenuClicked")
            GUICtrlCreateMenuItem ("Exit", $hCxt)
               GUICtrlSetOnEvent (-1, "_Exit")
   Next
   $nWidth = 4 + ($i - 1) * 36
   If $nTier <> 0 Then $nWidth = 364
   WinMove ($hGUI, "", default, default, $nWidth, 4 + ($nTier + 1) * 34)
   If HotkeySet ("!{ESC}", "_ShowGUI") = 0 Then Exit MsgBox (16, "Error!!", "Hotkey is already in use!")

While 1
   If Not WinActive ($hGUI, "") Then _HideGUI ()
   Sleep (20)
WEnd

Func _Dropped ()
   _CreateIconWizard (@GUI_DRAGFILE)
Endfunc ; ==> _Dropped

func _CreateIconWizard ($sFile = -1, $sName = "") ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   _HideGUI ()
   Opt ("GUIOnEventMode", 0)
   $hCreateUI = GUICreate ("Create an icon!", 238, 172, -1, -1, 13369344, 153)

                   GUICtrlCreateLabel ("Name:" ,   2,   4,  60,  20)
      $hName_Inp = GUICtrlCreateInput (""      ,  64,   2, 172,  20)

      GUICtrlCreateGroup ("Icon", 2, 24, 234, 88) ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
         $sIcon    = "C:\WINDOWS\system32\SHELL32.dll"
         $nInd     = 24

         $hIco_Inp = GUICtrlCreateInput  ($sIcon & "," & $nInd ,  10,  40, 220,  20)
                     GUICtrlSetState     (-1, 8)

         $hIco_Sel = GUICtrlCreateButton ("Select"             ,  10,  62,  90,  20)
                     GUICtrlSetState     (-1, 8)
         $hIco_Aut = GUICtrlCreateButton ("@AutoitExe icon"    ,  10,  84,  90,  20)
                     GUICtrlSetState     (-1, 8)
         $hIco_Def = GUICtrlCreateButton ("Default icon"       , 102,  62,  90,  20)
                     GUICtrlSetState     (-1, 8)
         $hIco_Ref = GUICtrlCreateButton ("Refresh icon"       , 102,  84,  90,  20)
                     GUICtrlSetState     (-1, 8)

         $hIco_Ico = GUICtrlCreateIcon   (@AutoitExe, 0        , 198,  66,  32,  32)
                     GUICtrlSetImage     (-1, $sIcon, $nInd)
                     GUICtrlSetState     (-1, 8)

      GUICtrlCreateGroup ("Command", 2, 112, 234, 36) ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
         $hCmd_Inp = GUICtrlCreateInput  (""                   ,  10, 124, 200,  20)
                     GUICtrlSetState     (-1, 8)
         $hCmd_Btn = GUICtrlCreateButton ("..."                , 210, 124,  20,  20)
                     GUICtrlSetState     (-1, 8)

      $hBtn_Acc    = GUICtrlCreateButton ("Ok"                 , 150, 150,  80,  20)
                     GUICtrlSetState     (-1, 8)

      $hBtn_Canc   = GUICtrlCreateButton ("Cancel"             ,  68, 150,  80,  20)
                     GUICtrlSetState     (-1, 8)

   If Not IsDeclared ("sFile") Then $sFile = -1 ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

   If $sFile = -2 Then
      GUICtrlSetData      ($hName_Inp , $sName)
      $sIcon = _RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Quick launcher\Icons\" & $sName, "icon", "C:\WINDOWS\system32\SHELL32.dll,24")
      $nInd = StringRegExpReplace ($sIcon, ".*,(\d+)\z", "\1") + 0
      $sIcon = StringRegExpReplace ($sIcon, "(.*),\d+\z", "\1")
      GUICtrlSetImage     ($hIco_Ico  , $sIcon       , $nInd)
      GUICtrlSetData      ($hIco_Inp  , $sIcon & "," & $nInd)
      GUICtrlSetData      ($hCmd_Inp  , _RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Quick launcher\Icons\" & $sName, "command", ""))
   ElseIf $sFile <> -1 Then
      GUICtrlSetData      ($hName_Inp , StringRegExpReplace ($sFile, ".*\\(.*?)\..*)", "\1"))
      GUICtrlSetImage     ($hIco_Ico  , $sFile    , 0)
      GUICtrlSetData      ($hIco_Inp  , $sFile & ",0")
      GUICtrlSetData      ($hCmd_Inp  , $sFile       )
   EndIf

   GUISetState (@SW_SHOW, $hCreateUI) ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

   While 1
      $nMsg = GUIGetMsg ()
      Switch $nMsg
         Case -3, $hBtn_Canc
            ExitLoop
         Case -13 ; drop
            $sExt = StringRegExpReplace (@GUI_DRAGFILE, ".*\.", "")
            If $sExt = "ico" Then
               GUICtrlSetData ($hIco_Inp, @GUI_DRAGFILE & ",0")
               GUICtrlSetImage ($hIco_Ico, @GUI_DRAGFILE, 0)
            ElseIf $sExt = "exe" Then
               GUICtrlSetData ($hName_Inp, StringRegExpReplace (StringTrimRight (@GUI_DRAGFILE, 4), ".*\\(.*?)", "\1"))
               GUICtrlSetData ($hCmd_Inp, @GUI_DRAGFILE)
               GUICtrlSetData ($hIco_Inp, @GUI_DRAGFILE & ",0")
               GUICtrlSetImage ($hIco_Ico, @GUI_DRAGFILE, 0)
            ElseIf $sExt = "au3" Then
               GUICtrlSetData ($hName_Inp, StringRegExpReplace (StringTrimRight (@GUI_DRAGFILE, 4), ".*\\(.*?)", "\1"))
               GUICtrlSetData ($hCmd_Inp, """" & @AutoitExe & """ /AutoIt3ExecuteScript """ &  @GUI_DRAGFILE & """")
               GUICtrlSetData ($hIco_Inp, @AutoitExe & ",0")
               GUICtrlSetImage ($hIco_Ico, @AutoitExe, 0)
            Else
               GUICtrlSetData ($hName_Inp, StringRegExpReplace (StringTrimRight (@GUI_DRAGFILE, 4), ".*\\(.*?)", "\1"))
               GUICtrlSetData ($hCmd_Inp, @GUI_DRAGFILE)
               GUICtrlSetData ($hIco_Inp, @GUI_DRAGFILE & ",0")
               GUICtrlSetImage ($hIco_Ico, @GUI_DRAGFILE, 0)
            EndIf
         Case $hIco_Sel, $hIco_Def, $hIco_Ref, $hIco_Ico
            $sIcon = GUICtrlRead ($hIco_Inp)
            $nInd = StringRegExpReplace ($sIcon, ".*,(\d+)\z", "\1") + 0
            $sIcon = StringRegExpReplace ($sIcon, "(.*),\d+\z", "\1")
            If $nMsg  = $hIco_Sel Then
               $aIcon = DllCall("shell32.dll", "int", "PickIconDlg", "hwnd", $hCreateUI, "wstr", $sIcon, "int", 1000, "int*", $nInd - 1)
               $sIcon = StringReplace ($aIcon[2], "%SystemRoot%", @WindowsDir)
               $nInd  = $aIcon[4] + 1
            ElseIf $nMsg = $hIco_Def Then
               $sIcon   = "C:\WINDOWS\system32\SHELL32.dll"
               $nInd    = 24
            ElseIf $nMsg = $hIco_Aut Then
               MsgBox (0, "", "")
               $sIcon   = @AutoitExe
               $nInd    = 0
            Else
               $sIcon = GUICtrlRead ($hIco_Inp)
               $nInd = StringRegExpReplace ($sIcon, ".*,(\d+)\z", "\1") + 0 ; I was having problems with GUICtrlSetImage
               $sIcon = StringRegExpReplace ($sIcon, "(.*),\d+\z", "\1")
            EndIf
            GUICtrlSetData ($hIco_Inp, $sIcon & "," & $nInd)
            GUICtrlSetImage ($hIco_Ico, $sIcon, $nInd)
         Case $hCmd_Btn
            GUISetState (@SW_HIDE, $hCreateUI)
            $line = _Wizard ()
            If $line <> "" Then GUICtrlSetData ($hCmd_Inp, $line)
            GUISetState (@SW_SHOW, $hCreateUI)
         Case $hBtn_Acc
            $sName = GUICtrlRead ($hName_Inp)
            If $sName = "" Then ContinueLoop 1 + 0 * MsgBox (16, "Error", "Name cannot be blank!")
            If _RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Quick launcher\Icons\" & $sName, "command", "") <> "" Then
               If MsgBox (20, "Error", "Name already exist!" & @CRLF & @CRLF & "Overwrite?") <> 6 Then ContinueLoop
            EndIf
            $sIcon = GUICtrlRead ($hIco_Inp)
            $nInd = StringRegExpReplace ($sIcon, ".*,(\d+)\z", "\1") + 0
            $sIcon = StringRegExpReplace ($sIcon, "(.*),\d+\z", "\1")
            If Not FileExists ($sIcon) Then ContinueLoop 1 + 0 * MsgBox (16, "Error", "Icon file does not exist!!")
            $line = GUICtrlRead ($hCmd_Inp)
            If $line = "" Then ContinueLoop 1 + 0 * MsgBox (16, "Error", "command line not valid!")

            _CreateIcon ($sIcon & "," & $nInd, $sName, $line)
            _Restart ()
            ExitLoop
      EndSwitch
   WEnd
   GUIDelete ($hCreateUI)
   Opt ("GUIOnEventMode", 1)
   Return
EndFunc ; ==> _CreateIconWizard ; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Func _CreateIcon ($sIconPath, $sName, $sCommand)
   RegWrite ("HKEY_LOCAL_MACHINE\SOFTWARE\Quick launcher\Icons\" & $sName, "Icon"   , "REG_SZ", $sIconPath)
   RegWrite ("HKEY_LOCAL_MACHINE\SOFTWARE\Quick launcher\Icons\" & $sName, "Command", "REG_SZ", $sCommand)
EndFunc ; ==> _CreateIcon

Func _HideGUI ()
   GUISetState (@SW_Hide, $hGUI)
EndFunc ; ==> _HideGUI

Func _Exit ()
   Exit
EndFunc ; ==> _Exit

Func _ShowGUI ()
   $nIsOpen = 1
   $aPos = MouseGetPos ()
   $aPos2 = WinGetPos ($hGUI, "")
   If $aPos[0] > @DesktopWidth - $aPos2[2] Then $aPos[0] -= $aPos2[2] - 4
   If $aPos[1] > @DesktopHeight - $aPos2[3] Then $aPos[1] -= $aPos2[3] - 4
   WinMove ($hGUI, "", $aPos[0] - 2, $aPos[1] - 2)
   GUISetState (@SW_Show, $hGUI)
EndFunc ; ==> _ShowGUI

Func _EventClicked ()
   _HideGUI ()
   $i = _GetIndex (@GUI_CtrlId)
   If $i < 0 Then Return
   Run (RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Quick launcher\Icons\" & RegEnumKey ("HKEY_LOCAL_MACHINE\SOFTWARE\Quick launcher\Icons\", $i), "command"))
EndFunc ; ==> _EventClicked

Func _MenuClicked ()
   _HideGUI ()
   If StringLeft (GUICtrlRead (@GUI_CtrlID, 1), 6) = "edit: " Then Return _CreateIconWizard (-2, StringTrimLeft (GUICtrlRead (@GUI_CTRLID, 1), 6))
   If StringLeft (GUICtrlRead (@GUI_CTRLID, 1), 8) = "delete: " Then Return _DeleteIcon (StringTrimLeft (GUICtrlRead (@GUI_CTRLID, 1), 8))
   Run (RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Quick launcher\Icons\" & GUICtrlRead (@GUI_CTRLID, 1), "command"))
EndFunc ; ==> _MenuClicked

Func _DeleteIcon ($sName)
   RegDelete ("HKEY_LOCAL_MACHINE\SOFTWARE\Quick launcher\Icons\" & $sName)
   _Restart ()
EndFunc ; ==> _DeleteIcon

Func _GetIndex ($hIcon)
   For $i = 1 to $ahIcons[0]
      If $ahIcons[$i] = $hIcon Then Return $i
   Next
   Return -1
EndFunc ; ==> _GetIndex

Func _Wizard ()
   Local $sCmdLine = "", $sFil_Cur = ""
   $hWizUI = GUICreate ("Create command line.", 500, 90, -1, -1, 0x00C00000 + 0x00080000 + 0x00040000, 0x00000080 + 0x00000001 + 0x00000008)
      $hTab = GUICtrlCreateTab (2, 2, 496, 20)
         GUICtrlCreateTabItem ("Input...")
            GUICtrlCreateLabel ("Command Line:", 2, 24, 80, 20)
            $hInp_Inp = GUICtrlCreateInput ("", 84, 24, 390, 20)
         GUICtrlCreateTabItem ("Executable")
            GUICtrlCreateLabel (".exe file path:", 2, 24, 80, 20)
               $hExe_Inp = GUICtrlCreateInput ("", 84, 24, 390, 20)
               $hExe_Btn = GUICtrlCreateButton ("...", 474, 24, 20, 20)
            GUICtrlCreateLabel ("* Arguments:", 2, 46, 80, 20)
               $hExe_Par = GUICtrlCreateInput ("", 84, 46, 410, 20)
         GUICtrlCreateTabItem ("File")
            GUICtrlCreateLabel (" file path:", 2, 24, 80, 20)
               $hFil_Inp = GUICtrlCreateInput ("", 84, 24, 390, 20)
               $hFil_Btn = GUICtrlCreateButton ("...", 474, 24, 20, 20)
               $hFil_Lst = GUICtrlCreateCombo ("", 2, 46, 100, 20, 0x0003)
            GUICtrlCreateLabel ("* Additional params:", 108, 48, 105, 20)
               $hFil_Add = GUICtrlCreateInput ("", 206, 46, 285, 20)
         GUICtrlCreateTabItem ("Web site")
            $hWeb_Rad = GUICtrlCreateRadio ("URL:", 2, 24, 60, 20)
               GUICtrlSetState (-1, 1)
               $hWeb_Url = GUICtrlCreateInput ("http:\\", 64, 24, 430, 20)
            GUICtrlCreateRadio ("Mailto:", 2, 46, 60, 20)
               $hWeb_Mto = GUICtrlCreateInput ("", 64, 46, 430, 20)
         GUICtrlCreateTabItem ("Folder")
            GUICtrlCreateLabel ("Folder directory:", 2, 24, 80, 20)
               $hFol_Inp = GUICtrlCreateInput ("", 84, 24, 390, 20)
               $hFol_Btn = GUICtrlCreateButton ("...", 474, 24, 20, 20)
               $hFol_Lst = GUICtrlCreateCombo ("", 2, 46, 100, 20, 0x0003)
                  GUICtrlSetData (-1, "Normal View")
                  GUICtrlSetData (-1, "Explorer View")
            GUICtrlCreateLabel ("* Additional params:", 108, 48, 105, 20)
               $hFol_Add = GUICtrlCreateInput ("", 206, 46, 285, 20)
         GUICtrlCreateTabItem ("Advanced")
            GUICtrlCreateLabel ("Execute Line:", 2, 24, 80, 20)
               $hAdv_Inp = GUICtrlCreateInput ("", 84, 24, 410, 20)
            $hAdv_Rad = GUICtrlCreateRadio ("Errors to STD stream. *", 2, 46, 130, 20)
      GUICtrlCreateTabItem ("")
      GUICtrlCreateLabel ("* = optional.", 2, 68, 80, 20)
      $hDlg_tst = GUICtrlCreateButton ("Test run", 252, 68, 80, 20)
      $hDlg_can = GUICtrlCreateButton ("Cancel", 334, 68, 80, 20)
      $hDlg_don = GUICtrlCreateButton ("Finished", 416, 68, 80, 20)
   GUISetState ()
   While 1
      $msg = GUIGetMsg ()
      Switch $msg
         Case -3, $hDlg_can
            GUIDelete ($hWizUI)
            Return SetError (1, 0, "")
         Case $hDlg_Don, $hDlg_tst
            Switch ControlCommand ($hWizUI, "", $hTab, "CurrentTab", "")
               Case 1 ; Input...
                  $sCmdLine = GUICtrlRead ($hInp_Inp)
               Case 2 ; executable
                  $sCmdLine = """" & GUICtrlRead ($hExe_Inp) & """ " & GUICtrlRead ($hExe_Par)
               Case 3 ; file
                  $cur = GUICtrlRead ($hFil_Lst)
                  If $cur = "" Then
                     $sCmdLine = """" & GUICtrlRead ($hFil_Inp) & """"
                  ElseIf $cur = "(default Program)" Then
                     $sCmdLine = "%WinDir%\System32\Rundll32.exe Url,FileProtocolHandler " & FileGetShortName (GUICtrlRead ($hFil_Inp))
                  Else
                     $cur = RegRead ("HKCR\" & $temp & "\shell\" & $cur & "\Command", "")
                     $pos = StringInStr ($cur, "%1")
                     If $Pos <> 0 Then
                        $quote = ""
                        If StringMid ($cur, $pos - 1, 1) <> """" Then $quote = """"
                        $sCmdLine = StringReplace (StringReplace ( _
                           $cur, "%1", $quote & GUICtrlRead ($hFil_Inp) & $quote), "%*", "") & GUICtrlRead ($hFil_Add)
                        If $msg = $hDlg_don Then ExitLoop
                        Run ($sCmdLine)
                        ContinueLoop
                     EndIf
                     If StringLeft ($cur, 1) = """" Then
                        $cur = StringTrimLeft ($cur, 1)
                        $cur = StringRegExpReplace ($cur, """.*", "")
                     Else
                        $cur = StringRegExpReplace ($cur, "(\S*).*", "\1")
                        $cur = FileGetLongName ($cur)
                     EndIf
                     $sCmdLine = """" & $cur & """ """ & GUICtrlRead ($hFil_Inp) & """ " & GUICtrlRead ($hFil_Add)
                  EndIf
               Case 4 ; web site
                  If BitAnd (GUICtrlRead ($hWeb_Rad), 1) Then
                     $sCmdLine = "%WinDir%\System32\Rundll32.exe Url,FileProtocolHandler " & GUICtrlRead ($hWeb_Url)
                  Else
                     $sCmdLine = "%WinDir%\System32\Rundll32.exe Url,FileProtocolHandler Mailto:" & GUICtrlRead ($hWeb_Mto)
                  EndIf
               Case 5 ; folder
                  $view = "/n"
                  If GUICtrlRead ($hFol_Lst) = "Explorer View" Then $view = "/e"
                  $sCmdLine = "explorer.exe " & $view & " """ & GUICtrlRead ($hFol_Inp) & """ " & GUICtrlRead ($hFol_Add)
               Case 6 ; advanced
                  $sErr = ""
                  If BitAnd (GUICtrlRead ($hAdv_Rad), 1) Then $sErr = "/ErrorStdOut"
                  $sCmdLine = """" & @AutoitExe & """ " & $sErr & " /AutoIt3ExecuteLine """ & _
                     StringReplace (GUICtrlRead ($hAdv_Inp), """", """""") & """"
            EndSwitch
            If $msg = $hDlg_don Then ExitLoop
            Run ($sCmdLine)
         Case $hExe_Btn
            $sFile = FileOpenDialog ("Open exe...", @WorkingDir, "Executables (*.exe)|All Files (*.*)", 3, "*.exe", $hWizUI)
            If @Error Then ContinueLoop
            GUICtrlSetData ($hExe_Inp, $sFile)
         Case $hFil_Btn
            $sFile = FileOpenDialog ("Open File...", @WorkingDir, "All Files (*.*)", 3, "", $hWizUI)
            If @Error Then ContinueLoop
            GUICtrlSetData ($hFil_Inp, $sFile)
         Case $hFol_Btn
            $sFile = FileSelectFolder ("Select Folder...", "", 7, @WorkingDir, $hWizUI)
            If @Error Then ContinueLoop
            GUICtrlSetData ($hFol_Inp, $sFile)
      EndSwitch
      If $sFil_cur = GUICtrlRead ($hFil_Inp) Then ContinueLoop
      $sFil_cur = GUICtrlRead ($hFil_Inp)
      GUICtrlSetData ($hFil_Lst, "")
      If Not FileExists ($sFil_Cur) Then ContinueLoop
      $temp = RegRead ("HKCR\." & StringRegExpReplace ($sFil_Cur, ".*\.", ""), "")
      If @Error Then ContinueLoop
      $i = 0
      GUICtrlSetData ($hFil_Lst, "(default Program)")
      While 1
         $i += 1
         RegEnumKey ("HKCR\" & $temp & "\shell\", $i)
         If @Error <> 0 Then ExitLoop
         GUICtrlSetData ($hFil_Lst, RegEnumKey ("HKCR\" & $temp & "\shell\", $i))
      WEnd
   WEnd
   GUIDelete ($hWizUI)
   Return $sCmdLine
EndFunc ; ==> _Wizard

Func _Restart ()
   If @Compiled Then
      Run ("""" & @ScriptFullPath & """")
   Else
      Run ("""" & @AutoitExe & """ """ & @ScriptFullPath & """")
   EndIf
   Exit
EndFunc ; ==> _Restart

Func _RegRead ($key, $name, $ret)
    Local $Result = RegRead ($key, $name)
    If @Error Then Return $ret
    Return $Result
EndFunc   ;==>_RegRead

Func _RegReadSectionNames ($key)
   Local $aRet[1], $i = 0
      $aRet[0] = 0
   While 1
      $i += 1
      $var = RegEnumKey($Key, $i)
      If @error <> 0 Then ExitLoop
      ReDim $aRet[UBound ($aRet, 1) + 1]
      $aRet[UBound ($aRet, 1) - 1] = $var
      If @Error Then ReDim $aRet[UBound ($aRet, 1) - 1]
      $aRet[0] += 1
   WEnd
   Return $aRet
Endfunc   ;==>_RegReadSectionNames

Mat

Share this post


Link to post
Share on other sites



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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0