Jump to content
Sign in to follow this  
kaotkbliss

Program Launcher

Recommended Posts

kaotkbliss

My first project outside of work smile.gif

Since I have literally hundreds of games and programs installed on my pc, even using the start menu can get me lost when looking for a specific thing. With this, you can drag/drop any file or shortcut onto the GUI. Then you can open any file from the convienient GUI sitting on your desktop.

5 different "tabs" or lists allow you to sort and organize your files to make them easier to find when your lists get long.
 

Latest Version 3.0.2.2<-11/8/13 (or 8/11/13 for the European people)

You can get the included help file here for a more indepth look at what this program can do and how it works.

I've removed the purchase requirement (it's free again) and added a donate button to the installer.

Bugs, suggestions and comments are welcome!

post-52469-0-39046100-1346421892_thumb.p

post-52469-0-33528700-1342555719_thumb.p

post-52469-0-82714800-1319557608_thumb.j

Edited by kaotkbliss
  • Like 2

010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Share this post


Link to post
Share on other sites
jaberwacky

When I add a program to a tab the script crashes with error:

==> Subscript used with non-Array variable.:

$buta[$w] = GUICtrlCreateButton($taba[$i], 5, $y + 1, 40, 40, $BS_ICON)

$buta^ ERROR

Suggestion: give us an openfiledialog to add programs with.

Edited by jaberwocky6669

Share this post


Link to post
Share on other sites
taietel

Same problem here, but solved: try to replace 

..........

Func taba()
    Dim $taba
    Dim $buta[1] ;<========= HERE (line 219)


.........
Edited by taietel

Share this post


Link to post
Share on other sites
kaotkbliss

Yeah, sorry. I don't know where that [1] wandered off to :blink:

I'm updating the code to include that as well as a fix to the scrolling

(there was a problem when it reached the end of the list.


010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Share this post


Link to post
Share on other sites
taietel

kaotkbliss, just an idea: you can get rid of those "/\" ; replace your gui() func with:

Func gui()
    $posx = IniRead(@WorkingDir & "\pldata.ini", "pos", 1, -1)
    $posy = IniRead(@WorkingDir & "\pldata.ini", "pos", 2, -1)
    $y = 25
    $w = 1
    $main = GUICreate("Program Launcher", 350, 446, $posx, $posy)
    $filemenu = GUICtrlCreateMenu("Options")
    $fileitem1 = GUICtrlCreateMenuItem("Add Tab", $filemenu)
    $fileitem2 = GUICtrlCreateMenuItem("Remove Tab", $filemenu)
    $htab=GUICtrlCreateTab(2, 2, 346, 426)
    $win = GUICtrlCreateTabItem($tab1)
    createtaba()
    $y = 25
    $w = 1
    $add1 = GUICtrlCreateButton("Add Program", 95, 400, 73, 25)
    $remove1 = GUICtrlCreateButton("Remove Program", 180, 400, 90, 25)
    GUICtrlCreateLabel("", 324, 70, 20, 290, $SS_BLACKFRAME)
    $aup = GUICtrlCreateButton(ChrW(9651), 323, 26, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    $aup1 = GUICtrlCreateButton(ChrW(9650), 323, 50, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    GUICtrlSetColor(-1,0x0000ff)
    $adown = GUICtrlCreateButton(ChrW(9661), 323, 374, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    $adown1 = GUICtrlCreateButton(ChrW(9660), 323, 350, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    GUICtrlSetColor(-1,0x0000ff)
    $win2 = GUICtrlCreateTabItem($tab2)
    createtabb()
    $y = 25
    $w = 1
    $add2 = GUICtrlCreateButton("Add Program", 95, 400, 73, 25)
    $remove2 = GUICtrlCreateButton("Remove Program", 180, 400, 90, 25)
    GUICtrlCreateLabel("", 324, 70, 20, 290, $SS_BLACKFRAME)
    $bup = GUICtrlCreateButton(ChrW(9651), 323, 26, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    $bup1 = GUICtrlCreateButton(ChrW(9650), 323, 50, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    GUICtrlSetColor(-1,0x0000ff)
    $bdown = GUICtrlCreateButton(ChrW(9661), 323, 374, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    $bdown1 = GUICtrlCreateButton(ChrW(9660), 323, 350, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    GUICtrlSetColor(-1,0x0000ff)
    $win3 = GUICtrlCreateTabItem($tab3)
    createtabc()
    $y = 25
    $w = 1
    $add3 = GUICtrlCreateButton("Add Program", 95, 400, 73, 25)
    $remove3 = GUICtrlCreateButton("Remove Program", 180, 400, 90, 25)
    GUICtrlCreateLabel("", 324, 70, 20, 290, $SS_BLACKFRAME)
    $cup = GUICtrlCreateButton(ChrW(9651), 323, 26, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    $cup1 = GUICtrlCreateButton(ChrW(9650), 323, 50, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    GUICtrlSetColor(-1,0x0000ff)
    $cdown = GUICtrlCreateButton(ChrW(9661), 323, 374, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    $cdown1 = GUICtrlCreateButton(ChrW(9660), 323, 350, 22, 25, BitOR($BS_CENTER, $BS_VCENTER))
    GUICtrlSetColor(-1,0x0000ff)
    GUICtrlCreateTabItem("")
    GUICtrlSetState ($curtab, $GUI_SHOW)
    GUISetState(@SW_SHOW)
EndFunc   ;==>gui

You can change text color if you like (on hover? :blink: ).

Share this post


Link to post
Share on other sites
kaotkbliss

Maybe I can play with that idea, however, that character or code doesn't seem to work on my machine. it just gives me a box and makes the gui always think the add program button is being pressed ;)

*edit*

I was thinking of using some bitmaps to cover those buttons with though. I will definately look into hover changes, thanks for the idea!

Also, I'm nearly finished with the ability to add and remove up to 4 additional tabs :blink:

Edited by kaotkbliss

010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Share this post


Link to post
Share on other sites
jaberwacky

Try this highly modified version. I generalized most of the functions. Tell me what you think...

#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
#AutoIt3Wrapper_AU3Check_Parameters=-w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -d
#AutoIt3Wrapper_Run_Tidy=y
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <Array.au3>
#include <File.au3>
#include <staticconstants.au3>

AutoItSetOption("trayicondebug", 1)

Global Const $plDataIni = @ScriptDir & "\pldata.ini"

If Not FileExists($plDataIni) Then firstrun()

Global $proga[10], $progb[10], $progc[10]
Global $htab, $add1, $add2, $add3, $fileitem1, $fileitem2, $main, $remove1, $remove2, $remove3
Global $aup, $aup1, $adown, $adown1, $bup, $bup1, $bdown, $bdown1, $cup, $cup1, $cdown, $cdown1
Global $a = 1, $b = 1, $c = 1, $msg, $run, $w, $y, $taba, $tabb, $tabc

gui()

While 1

    $msg = GUIGetMsg()

    Select
        Case $msg = $add1
            CreatePath('a')

        Case $msg = $add2
            CreatePath('b')

        Case $msg = $add3
            CreatePath('c')

        Case $msg = $fileitem1
            addtab()

        Case $msg = $fileitem2
            DeleteTab()

;~      Case $msg = $remove1
;~          RemoveTab()

;~      Case $msg = $remove2
;~          RemoveTab('b')

;~      Case $msg = $remove3
;~          RemoveTab('b')

        Case $msg = $adown

            _FileReadToArray(@ScriptDir & "\taba.cfg", $taba)

            If IsArray($taba) Then
                $a += 5
                If $a > $taba[0] Then $a = $taba[0]
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $adown1

            _FileReadToArray(@ScriptDir & "\taba.cfg", $taba)

            If IsArray($taba) Then
                $a += 1
                If $a > $taba[0] Then $a = $taba[0]
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $aup

            _FileReadToArray(@ScriptDir & "\taba.cfg", $taba)

            If IsArray($taba) Then
                $a -= 5
                If $a < 1 Then $a = 1
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $aup1

            _FileReadToArray(@ScriptDir & "\taba.cfg", $taba)

            If IsArray($taba) Then
                $a -= 1
                If $a < 1 Then $a = 1
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $bdown

            _FileReadToArray(@ScriptDir & "\tabb.cfg", $tabb)

            If IsArray($tabb) Then
                $b += 5
                If $b > $tabb[0] Then $b = $tabb[0]
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $bdown1

            _FileReadToArray(@ScriptDir & "\tabb.cfg", $tabb)

            If IsArray($tabb) Then
                $b += 1
                If $b > $tabb[0] Then $b = $tabb[0]
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $bup

            _FileReadToArray(@ScriptDir & "\tabb.cfg", $tabb)

            If IsArray($tabb) Then
                $b -= 5
                If $b < 1 Then $b = 1
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $bup1

            _FileReadToArray(@ScriptDir & "\tabb.cfg", $tabb)

            If IsArray($tabb) Then
                $b -= 1
                If $b < 1 Then $b = 1
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $cdown

            _FileReadToArray(@ScriptDir & "\tabc.cfg", $tabc)

            If IsArray($tabc) Then
                $c += 5
                If $c > $tabc[0] Then $c = $tabc[0]
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $cdown1

            _FileReadToArray(@ScriptDir & "\tabc.cfg", $tabc)

            If IsArray($tabc) Then
                $c += 1
                If $c > $tabc[0] Then $c = $tabc[0]
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $cup

            _FileReadToArray(@ScriptDir & "\tabc.cfg", $tabc)

            If IsArray($tabc) Then
                $c -= 5
                If $c < 1 Then $c = 1
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $cup1

            _FileReadToArray(@ScriptDir & "\tabc.cfg", $tabc)

            If IsArray($tabc) Then
                $c -= 1
                If $c < 1 Then $c = 1
                pos()
                GUIDelete($main)
                gui()
            EndIf

        Case $msg = $GUI_EVENT_CLOSE

            pos()
            GUIDelete()
            Exit (1)

        Case $msg > 0

            $run = GUICtrlRead($msg)
            Run($run)
    EndSelect
WEnd

; =====================================================================================================

Func addtab()
    ConsoleWrite('@@ (216) :(' & @MIN & ':' & @SEC & ') addtab()' & @CR) ;### Function Trace
    ; nothing
EndFunc ;==>addtab

; =====================================================================================================

Func CreatePath(Const $abc)
    ConsoleWrite('@@ (223) :(' & @MIN & ':' & @SEC & ') CreatePath()' & @CR) ;### Function Trace

    Local Const $adpro = GUICreate("Add Program", 200, 30, -1, -1, -1, $WS_EX_ACCEPTFILES)

    Local Const $ftpr = GUICtrlCreateInput('', 1, 4, 160, 20)
    GUICtrlSetState($ftpr, $GUI_DROPACCEPTED)

    Local Const $prin = GUICtrlCreateButton("OK", 165, 1)

    GUISetState(@SW_SHOW)

    Local $msg2

    While 1

        $msg2 = GUIGetMsg()

        Select

            Case $msg2 = $prin

                Local Const $read = GUICtrlRead($ftpr)
                FileWriteLine(@ScriptDir & "\tab" & $abc & ".cfg", $read)
                ExitLoop

            Case $msg2 = $GUI_EVENT_CLOSE
                ExitLoop
        EndSelect
    WEnd

    GUIDelete($adpro)

    pos()

    Tab($abc)
EndFunc ;==>CreatePath

; =====================================================================================================

Func CreateTab(ByRef $tabArray, Const $abc)
    ConsoleWrite('@@ (263) :(' & @MIN & ':' & @SEC & ') CreateTab()' & @CR) ;### Function Trace

    Local $y = 0

    For $i = 0 To UBound($tabArray) - 1
        $tabArray[$i] = GUICtrlCreateLabel('', 65, $y + 15, 185, 24)
        $y += 40
    Next

    Tab($abc)
EndFunc ;==>CreateTab

; =====================================================================================================

Func DeleteTab()
    ConsoleWrite('@@ (278) :(' & @MIN & ':' & @SEC & ') deltab()' & @CR) ;### Function Trace

    Local $remtab[3]

    For $i = 0 To UBound($remtab) - 1
        $remtab[$i] = IniRead($plDataIni, "Tab", $i + 1, '')
    Next

    Local Const $remove = GUICreate("Remove", 400, 500)
    Local Const $del = GUICtrlCreateButton("Delete", 180, 460, 50, 30)
    Local Const $list = GUICtrlCreateListView("Select tab then click delete", 1, 1, 398, 450)

    For $i = 0 To UBound($remtab) - 1

        If $remtab[$i] <> '' Then

            GUICtrlCreateListViewItem($remtab[$i] & '|', $list)
        EndIf
    Next

    GUISetState(@SW_SHOW)

    Local $msg2;, $select, $select1, $select2, $new, $new2, $file, $read

    While 1

        $msg2 = GUIGetMsg()

        If $msg2 = $del Then

;~          $select = GUICtrlRead($list)
;~          $select1 = GUICtrlRead($select)
;~          $select2 = StringTrimRight($select1, 1)
;~          $read = FileRead($cfgFile)
;~          $new = StringReplace($read, $select2, '')
;~          $new2 = StringReplace($new, @LF & @LF, @LF)
;~          $file = FileOpen($cfgFile, 2)
;~          FileWrite($file, $new2)
;~          FileClose($file)
            ExitLoop

        ElseIf $msg2 = $GUI_EVENT_CLOSE Then

            GUIDelete($remove)
            ExitLoop

        EndIf
    WEnd

    pos()

    GUIDelete($remove)
    GUIDelete($main)

    gui()
EndFunc ;==>DeleteTab

; =====================================================================================================

Func firstrun()
    ConsoleWrite('@@ (285) :(' & @MIN & ':' & @SEC & ') firstrun()' & @CR) ;### Function Trace

    Local Const $1 = InputBox("Enter Tab 1 Name", "Enter a Name for Tab 1", "Tab1")
    IniWrite($plDataIni, "Tab", 1, $1)

    Local Const $2 = InputBox("Enter Tab 2 Name", "Enter a Name for Tab 2", "Tab2")
    IniWrite($plDataIni, "Tab", 2, $2)

    Local Const $3 = InputBox("Enter Tab 3 Name", "Enter a Name for Tab 3", "Tab3")
    IniWrite($plDataIni, "Tab", 3, $3)
EndFunc ;==>firstrun

; =====================================================================================================

Func gui()
    ConsoleWrite('@@ (300) :(' & @MIN & ':' & @SEC & ') gui()' & @CR) ;### Function Trace

    Local Const $posx = IniRead($plDataIni, "pos", 1, -1)
    Local Const $posy = IniRead($plDataIni, "pos", 2, -1)
    Local Const $tab1 = IniRead($plDataIni, "Tab", 1, "Tab1")
    Local Const $tab2 = IniRead($plDataIni, "Tab", 2, "Tab2")
    Local Const $tab3 = IniRead($plDataIni, "Tab", 3, "Tab3")
    Local Const $curtab = Int(IniRead($plDataIni, "curtab", 1, $tab1))

    $main = GUICreate("Program Launcher", 350, 446, $posx, $posy)
    Local Const $filemenu = GUICtrlCreateMenu("Options")
    $fileitem1 = GUICtrlCreateMenuItem("Add Tab", $filemenu)
    $fileitem2 = GUICtrlCreateMenuItem("Remove Tab", $filemenu)
    $htab = GUICtrlCreateTab(2, 2, 346, 426)

    GUICtrlCreateTabItem($tab1)
    CreateTab($proga, 'a')
    $add1 = GUICtrlCreateButton("Add Program", 95, 400, 73, 25)
    $remove1 = GUICtrlCreateButton("Remove Program", 180, 400, 90, 25)
    GUICtrlCreateLabel('', 324, 64, 22, 295, $SS_BLACKFRAME)
    $aup = GUICtrlCreateButton("/\" & @CR & "/\", 323, 26, 22, 25, BitOR($BS_MULTILINE, $BS_CENTER))
    $aup1 = GUICtrlCreateButton("/\", 323, 50, 22, 22, BitOR($BS_MULTILINE, $BS_CENTER))
    $adown = GUICtrlCreateButton("\/" & @CR & "\/", 323, 373, 22, 25, BitOR($BS_MULTILINE, $BS_VCENTER))
    $adown1 = GUICtrlCreateButton("\/", 323, 352, 22, 22, $BS_VCENTER)

    GUICtrlCreateTabItem($tab2)
    CreateTab($progb, 'b')
    $add2 = GUICtrlCreateButton("Add Program", 95, 400, 73, 25)
    $remove2 = GUICtrlCreateButton("Remove Program", 180, 400, 90, 25)
    GUICtrlCreateLabel('', 324, 64, 22, 295, $SS_BLACKFRAME)
    $bup = GUICtrlCreateButton("/\" & @CR & "/\", 323, 26, 22, 25, BitOR($BS_MULTILINE, $BS_CENTER))
    $bup1 = GUICtrlCreateButton("/\", 323, 50, 22, 22, BitOR($BS_MULTILINE, $BS_CENTER))
    $bdown = GUICtrlCreateButton("\/" & @CR & "\/", 323, 373, 22, 25, BitOR($BS_MULTILINE, $BS_VCENTER))
    $bdown1 = GUICtrlCreateButton("\/", 323, 352, 22, 22, $BS_VCENTER)

    GUICtrlCreateTabItem($tab3)
    CreateTab($progc, 'c')
    $add3 = GUICtrlCreateButton("Add Program", 95, 400, 73, 25)
    $remove3 = GUICtrlCreateButton("Remove Program", 180, 400, 90, 25)
    GUICtrlCreateLabel('', 324, 64, 22, 295, $SS_BLACKFRAME)
    $cup = GUICtrlCreateButton("/\" & @CR & "/\", 323, 26, 22, 25, BitOR($BS_MULTILINE, $BS_CENTER))
    $cup1 = GUICtrlCreateButton("/\", 323, 50, 22, 22, BitOR($BS_MULTILINE, $BS_CENTER))
    $cdown = GUICtrlCreateButton("\/" & @CR & "\/", 323, 373, 22, 25, BitOR($BS_MULTILINE, $BS_VCENTER))
    $cdown1 = GUICtrlCreateButton("\/", 323, 352, 22, 22, $BS_VCENTER)

    GUICtrlCreateTabItem('')
    GUICtrlSetState($curtab, $GUI_SHOW)

    GUISetState(@SW_SHOW)
EndFunc ;==>gui

; =====================================================================================================

Func pos()
    ConsoleWrite('@@ (354) :(' & @MIN & ':' & @SEC & ') pos()' & @CR) ;### Function Trace

    Local Const $pos = WinGetPos($main)
    IniWrite($plDataIni, "pos", 1, $pos[0])
    IniWrite($plDataIni, "pos", 2, $pos[1])

    Local Const $curtab = Int(GUICtrlRead($htab, 1))
    IniWrite($plDataIni, "curtab", 1, $curtab)
EndFunc ;==>pos

; =====================================================================================================

;~ Func RemoveTab(Const $abc)
;~  ConsoleWrite('@@ (367) :(' & @MIN & ':' & @SEC & ') RemoveTab()' & @CR) ;### Function Trace

;~ EndFunc ;==>RemoveTab

; =====================================================================================================

Func Tab(Const $abc)
    ConsoleWrite('@@ (427) :(' & @MIN & ':' & @SEC & ') Tab()' & @CR) ;### Function Trace
    Local $tab, $w = 1, $y = 25, $but[1], $execString

    _FileReadToArray(@ScriptDir & "\tab" & $abc & ".cfg", $tab)

    If IsArray($tab) Then

        If (Int($tab[0]) - $a) > 9 Then

            Local $name, $o

            For $i = $a To $a + 8

                If $tab[$i] <> '' Then

                    If $y > 385 Then
                        $y = 385
                    EndIf

                    GUICtrlCreateLabel('', 36, $y, 287, 40, $SS_BLACKFRAME)
                    $name = StringSplit($tab[$i], '\')
                    $o = $name[0]
                    Int($o)

                    If $w > 9 Then
                        $w = 9
                    EndIf

                    $execString = "GUICtrlSetData($prog" & $abc & "[$w], $name[$o])"
                    MsgBox(262144, 'Debug line ~' & @ScriptLineNumber, 'Selection:' & @LF & '$execString' & @LF & @LF & 'Return:' & @LF & $execString) ;### Debug MSGBOX

                    Execute($execString)

                    _ArrayAdd($but, $w)

                    $but[$w] = GUICtrlCreateButton('', 5, $y + 1, 40, 40, $BS_ICON)

                    GUICtrlSetData($but[$w], $tab[$i])
                    GUICtrlSetImage($but[$w], ' ' & $tab[$i] & ' ', 1)

                    $y += 40
                    $w += 1
                EndIf
            Next

        ElseIf (Int($tab[0]) - $a) < 10 Then

            For $i = $a To UBound($tab) - 1

                If $tab[$i] <> '' Then

                    If $y > 385 Then
                        $y = 385
                    EndIf

                    GUICtrlCreateLabel($tab[$i], 36, $y, 287, 40, $SS_BLACKFRAME)
                    $name = StringSplit($tab[$i], '\')
                    $o = $name[0]
                    Int($o)

                    If $w > 9 Then
                        $w = 9
                    EndIf

                    $execString = "GUICtrlSetData($prog" & $abc & "[$w], $name[$o])"

                    Execute($execString)

                    _ArrayAdd($but, $w)

                    $but[$w] = GUICtrlCreateButton($tab[$i], 5, $y + 1, 40, 40, $BS_ICON)

                    GUICtrlSetData($but[$w], $tab[$i])
                    GUICtrlSetImage($but[$w], $tab[$i], 1)

                    $y += 40
                    $w += 1
                EndIf
            Next
        EndIf
    EndIf
EndFunc ;==>Tab

; =====================================================================================================

Share this post


Link to post
Share on other sites
kaotkbliss

Oh well, it was worth a shot...

yes :blink: thanks for the try.

I think it will look pretty sweet with the gui taietel created though.

Updated to ver 1.2


010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Share this post


Link to post
Share on other sites
kaotkbliss

Some changes made

Changed the look of the tabs to match the GUI

Added a "Keep on Top" Option

Pulled the dll out of the code and saved it as a seperate file

Find the updated download in the first post.

Also I am going to add color change to the currently selected "tab" for easier reference.


010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Share this post


Link to post
Share on other sites
kaotkbliss

New version 2.3

Tabs now highlight to show which list is selected

Icons have been fixed:

it was as simple as switching these 2 lines in each list creation

GUICtrlCreateListViewItem($name[$o] & "|" & $remtaba[$i], $ListView)

GUICtrlSetImage($ListView, $remtaba[$i])

to this

GUICtrlSetImage($ListView, $remtaba[$i])

GUICtrlCreateListViewItem($name[$o] & "|" & $remtaba[$i], $ListView)

then in the ListView_Add function

GUICtrlCreateListViewItem($name[$o] & "|" & $file, $ListView)

GUICtrlSetImage($ListView, $file, 1)

to this

GUICtrlSetImage($ListView, $file, 1)

GUICtrlCreateListViewItem($name[$o] & "|" & $file, $ListView)

I still cannot get the very first program in the list to launch though ;)

The way around that is to add the first program in the list 2x, after that all additional programs are fine.


010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Share this post


Link to post
Share on other sites
kaotkbliss

Gah, I can't believe it was so simple...

To fix the first item in the list so it runs when double clicked, change

$extrax = 2

$extray = 24

to both = 1

($extrax = 1

$extray = 1)

This change needs to be made in botht he global variables and in the Gadget_CreateGui while loop.

I am working on fixing the right click bug where the main gui will attach itself to the mouse when you right click to remove a program (after you select yes or no)

Updating the original post.


010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Share this post


Link to post
Share on other sites
kaotkbliss

New Version 2.4!

Fixed the gui getting "stuck" to the mouse after a right click

Added renaming of items in the list

Moved the "about" screen so it wasn't covered with "Set on Top" checked

Still working on reordering of the list, but it's looking like I may give up on that.

When you rename an item, it will get moved to the bottom of the list, but on close and reopen will go back to original order. (It's the GUICtrlCreateListViewItem after the rename that sets it to the bottom, but when it is re-run, it lists them in order of lines in the .cfg file)


010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Share this post


Link to post
Share on other sites
kaotkbliss

I am working on the next update with adds the ability to change skin colors. There is only room for 6 so I would like to know from those of you who use this, what colors you would like to see.

Currently I have:

Black (current color)

Red

Blue

Green

Purple (for the women ;))

and Gold/Yellow


010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Share this post


Link to post
Share on other sites
kaotkbliss

New version added! (see first post for download)

Removed gui from taskbar (I didn't feel there was a need to have it there)

Added opening a files properties to right click menu (for quick access to compatibility or read only changes)

Fixed issue with icon dissapearing from the tray durring show/hide

Added skin colors

Can now add url's,lnk and just about any other file to the gui and launch

Beyond that, I can't remember.

So now you can add your doc files, pdf's, mp3 music files, internet favorites and so on and open any of them from a single gui on your desktop.

As always, please let me know if you find any bugs!


010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Share this post


Link to post
Share on other sites
kaotkbliss

Ver 2.5.0.1

Sometimes when showing and hiding the Gui, the task manager icon would dissapear and the Gui would not pop to the top

Also, sometimes durring resolution changes the Gui would end up off screen with no way to bring it back

So, I fixed these by some minor code changes and adding an addition to the icon's menu for moving the Gui.

If you don't want to download the entire thing all over, just add this to the end of the code

Func _MoveGui()
    Do
        $mousepos=MouseGetPos()
        WinMove($hGui,"",$mousepos[0],$mousepos[1])
    Until _IsPressed(01)
    TrayItemSetState($mGui,$TRAY_UNCHECKED)
EndFunc

change the _Tray_ShowGUI() function to this

Func _Tray_ShowGUI()
    TrayItemSetState($mTray, 4)
    DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hGUI, "int", 150, "long", 0x00040010)
    GUISetState(@SW_SHOW, $hGUI)
    WinActivate ( $hGui )
EndFunc   ;==>_Tray_ShowGUI

And change the _Tray() function to this

Func _Tray()
    TraySetIcon($icn_dll, -5)
    TraySetClick("16")
    $mTray = TrayCreateItem("Show the window")
    TrayItemSetOnEvent($mTray, "_Tray_ShowGUI")
    $mGui = TrayCreateItem("Move the window")
    TrayItemSetOnEvent($mGui, "_MoveGui")
    TrayCreateItem("")
    Local $mTrayX = TrayCreateItem("Exit")
    TrayItemSetOnEvent($mTrayX, "_Tray_Exit")
EndFunc   ;==>_Tray

I believe that is all the changes.


010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

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  

  • Similar Content

    • copyleft
      By copyleft
      I am trying to create a script to clean up users' desktops by moving all desktop folders and files (except the two hidden "desktop.ini" files and a MyDesktop.lnk shortcut) to a different folder. The script below will move files but not folders. The other issue with the script is that it doesn't seem to execute from a location other than the user's desktop. I would appreciate any suggestions.
      #include <File.au3> MsgBox(64, "Desktop", "Cleaning up Desktop. This box will close in 4 seconds.", 4) $Files = _FileListToArray(@DesktopDir,"*",1) For $Index = 1 To $Files[0] If StringRight($Files[$Index],4) <> ".ini, MyDesktop.lnk" Then FileMove($Files[$Index],'F:\HOME\Desktop') EndIf Next  
    • ur
      By ur
      Is there any way to launch an application once I receive an email.
      I have an executable created in autoit and I am running it regularly on daily basis using task scheduler on windows.
      And sometimes I am running it again manually if someone asks to.
      Is there anyway to configure an email so that when I send a mail to that particular email ID then it should launch that exe directly?
    • elsemieni
      By elsemieni
      Hey hello.
      I came here with maybe too specific questions about uncommon things, but as people says, I don't lose anything trying to asking here 
      There's long time that I have a little "experimental" idea: Use windows desktop and it icon system like old videogame consoles (where "sprites" are used to draw things on screen, can be manipulated/animated to make interesting things happen). Some of that inspiration came from another experiments from demoscene.
      Researching the possibilities of doing something like that (maybe not so intense) I found that the Windows Desktop uses a GuiListView to show and arrange icons (and of course, AutoIt provides UDF's for that  ). So, I'm used that UDF to create dummy icons (not putting files on Desktop, just modifiying the "GUI layer" of desktop for put non-working icons), setting custom values like coordinates, name and Icon (from a list of loaded icons in the GuiListView).  As you can see in next image works well in Windows XP... even in Windows 95 (that's not the case from Windows Vista to 10, but I already posted another question here about that... anyways, for now I'm working that with a isolated XP machine... sigh).

      Another video doing an animation with that:
      How I make that custom icons? Here:
      $hWnd = ControlGetHandle("Program Manager", "", "[CLASS:SysListView32; INSTANCE:1]") $newItem = _GUICtrlListView_AddItem ( $hWnd, "TEST", 32 ) ; with an icon of index 32 _GUICtrlListView_SetItemPosition ( $hWnd, $newItem, 300, 300 ) ; set some example property. Put in X=300 Y=300 Okay, so the next phase was changing the icons with custom ones. And here starts the issues. As AutoIT help says, icons from GuiListView came from a loaded GUIImageList, which, seeing past images I conclude that it's already preloaded with some sort of most used icons (something like an icon cache?). But If I modify it (or create another GUIImageList and then put into the GuiListView) the icons became corrupted and replaced with blank ones. (can be reverted deleting IconCache.db, just like when windows shows wrong icons in desktop).
      How I change icons? Here
      $hImage = _GUIImageList_Create(48, 48, 5) ; create an image list for 48x48 icons $newIcon = _GUIImageList_AddIcon($imageList, @SystemDir & "\shell32.dll", 110) ; just adding a new icon in the image list _GUICtrlListView_SetImageList($hWnd, $hImage, 0) ; $hwnd is the desktop hwnd Another option as workaround for setting icons was getting the desktop GUIImageList, and modifiyng it directly. I otbtain a GUIImageList handle, but ... without any images inside! (That's strange beacuse, when I set desktop item icons without altering the GUIImageList, it applies correctly). And finally if I try to add new ones, it returns -1 with @error setted.
      How I'm trying to get  desktop GUIImageList? Here.
      $imageList = _GUICtrlListView_GetImageList ( $hWnd, 0 ) MsgBox(0,_GUIImageList_GetImageCount ( $imageList ), $imageList) ; getting image count and GUIImageList handle $newIcon = _GUIImageList_AddIcon($imageList, @SystemDir & "\shell32.dll", 110) ; adding icons without success So, what is the question? There's something wrong I'm doing while trying to set the new icon set on desktop? Or desktop icons work in different way than the rest of the GuiListView's? Or there's something really stupid that I can't saw before that corrupts the icons? 
      Also... if there's not known solution for that, do you have some idea for doing a workaround for that? Or another crazy idea? (Maybe putting real files instead dummy icons could be a solution ... a very slow one). Or even maybe (maybe not, I sure about that xD) do you want to help with this "experiment".
      Thanks in advance, have a good day  
    • nss
      By nss
      Hi all. I am creating an app that runs a program with the admin privileges using the shellexecute's run as verb, but what my problem is, that no matter what I use to launch the program, it doesn't quite work like the run dialog would (certain programs don't get found, etc.). I've tried using the explorer.exe and passing the program to it, that is unreliable and opens documents folder sometimes instead, I've tried using the @comspec /c and that works better, but still some of the programs aren't being found that would be with the run dialog e.g., if I do @comspec /c diskpart it won't find it, I've even tried setting the working dir, but still no luck. I also tried passing commandline params to C:\WINDOWS\system32\rundll32.exe shell32.dll,#61, but no luck. can anyone help me what way to go in order to be able to launch programs in the run dialog style? is there a function in winapi that run dialog uses that I could use as well? Or what would be the best way to go about this? Any help much appreciated.
×