AutoItSetOption("RunErrorsFatal",1) ;#NoTrayIcon #include #Include #include Global $lnk[100000],$all[100000][8],$found[100],$finp[1000],$fgs[7],$mouse[10],$curr,$selected,$found,$search,$main,$sfound,$oldsearch = "" read() HotKeySet("#{SPACE}","launch") HotKeySet("^!{SPACE}","launch") ;;;;;;;;;;;;;;;;;;;;;;;; MAIN LOOP ;;;;;;;;;;;;;;;;;;;;;;;;;;;; While 1 sleep(75) WEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;; GUI STUFF ;;;;;;;;;;;;;;;;;;;;;;;;;; Func launch() HotKeySet("#{SPACE}") HotKeySet("^!{SPACE}") HotKeySet("{ENTER}","runit") $main = GUICreate("QuickGold",300,210,-1,-1,$WS_POPUPWINDOW + $WS_TABSTOP + $DS_SETFOREGROUND,$WS_EX_TOOLWINDOW + $WS_EX_TOPMOST) GUISetBkColor(0xFFDF00) GUISetFont(9,600) $input = GUICtrlCreateInput("",10,10,280) $list = GUICtrlCreateList("",10,35,280,170,0x00200081) $txt = GUICtrlCreateLabel("(c) by Rakudave, Pangaea WorX",45,192) GUICtrlsetFont($txt,9,400) DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $main, "int", 200, "long", 0x00040010) GUISetState() WinSetTrans("QuickGold","",210) do $msg = GUIGetMsg() $search = GUICtrlRead($input) If $oldsearch <> $search then $oldsearch = $search GUICtrlSetData($list, _find($search)) EndIf $selected = guictrlread($list) If $msg = $GUI_EVENT_PRIMARYDOWN then $selected = guictrlread($list) runit() Endif until $msg = $GUI_EVENT_CLOSE DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $main, "int", 200, "long", 0x00050010) GUIDelete($main) HotKeySet("{ENTER}") HotKeySet("#{SPACE}","launch") HotKeySet("^!{SPACE}","launch") EndFunc ;;;;;;;;;;;;;;;;;;;;;;;;;;;; READ STARTMENU ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Func read() $curr = 1 $search = FileFindFirstFile(@ProgramsCommonDir & "\*.*") If $search = -1 Then MsgBox(0, "Error", "No files/directories matched the search pattern") Exit EndIf While 1 $file = FileFindNextFile($search) If @error = 1 Then ExitLoop If FileGetAttrib(@ProgramsCommonDir & "\" & $file) = "D" then $search2 = FileFindFirstFile(@ProgramsCommonDir & "\" & $file & "\*.*") While 1 $file2 = FileFindNextFile($search2) If @error = 1 Then ExitLoop If FileGetAttrib(@ProgramsCommonDir & "\" & $file & "\" & $file2) = "D" then $search3 = FileFindFirstFile(@ProgramsCommonDir & "\" & $file & "\" & $file2 & "\*.*") While 1 $file3 = FileFindNextFile($search3) If @error = 1 Then ExitLoop If FileGetAttrib(@ProgramsCommonDir & "\" & $file & "\" & $file2 & "\" & $file3) = "D" then $search4 = FileFindFirstFile(@ProgramsCommonDir & "\" & $file & "\" & $file2 & "\" & $file3 & "\*.*") While 1 $file4 = FileFindNextFile($search4) If @error = 1 Then ExitLoop If FileGetAttrib(@ProgramsCommonDir & "\" & $file & "\" & $file2 & "\" & $file3) = "D" then $search5 = FileFindFirstFile(@ProgramsCommonDir & "\" & $file & "\" & $file2 & "\" & $file3 & "\" & $file4 & "\*.*") While 1 $file5 = FileFindNextFile($search5) If @error = 1 Then ExitLoop $lnk[$curr] = @ProgramsCommonDir & "\" & $file & "\" & $file2 & "\" & $file3 & "\" & $file4 & "\" & $file5 $curr = $curr +1 WEnd FileClose($search5) Else $lnk[$curr] = @ProgramsCommonDir & "\" & $file & "\" & $file2 & "\" & $file3 & "\" & $file4 $curr = $curr +1 EndIf WEnd FileClose($search4) Else $lnk[$curr] = @ProgramsCommonDir & "\" & $file & "\" & $file2 & "\" & $file3 $curr = $curr +1 EndIf WEnd FileClose($search3) Else $lnk[$curr] = @ProgramsCommonDir & "\" & $file & "\" & $file2 $curr = $curr +1 Endif WEnd FileClose($search2) Else $lnk[$curr] = @ProgramsCommonDir & "\" & $file $curr = $curr +1 EndIf WEnd FileClose($search) for $x = 1 to $curr $fgs = FileGetShortcut ($lnk[$x]) If Stringinstr($lnk[$x],".lnk") > 0 AND Stringinstr($lnk[$x],"uninstall") = 0 AND Stringinstr($lnk[$x],"deinstalliere") = 0 AND Stringinstr($lnk[$x],"entferne") = 0 AND Stringinstr($lnk[$x],"remove") = 0 AND Stringinstr($lnk[$x],"unregister") = 0 then for $y = 0 to 6 $all[$x][$y] = $fgs[$y] next $lnkrep = StringReplace($lnk[$x],".lnk","") $spllnk = Stringsplit($lnkrep,"\") $all[$x][7] = $spllnk[$spllnk[0]] Endif next Endfunc ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SEARCH ENGINE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Func _find($search) $sfound = "" for $x = 1 to 100 $finp[$x] = "" next for $x = 1 to $curr $sis = Stringinstr($all[$x][7],$search,0) if $sis > 0 then $finp[$sis] = $finp[$sis] & $all[$x][7] & "|" Endif next for $x = 1 to 100 If $finp[$x] <> "" then $sfound = $sfound & "|" & $finp[$x] next $sfound = Stringreplace($sfound,"||||","|") $sfound = Stringreplace($sfound,"|||","|") $sfound = Stringreplace($sfound,"||","|") return $sfound EndFunc ;;;;;;;;;;;;;;;;;;;;;;;;;;;; RUN PROG ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Func runit() DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $main, "int", 200, "long", 0x00050010) GUIDelete() HotKeySet("{ENTER}") HotKeySet("#{SPACE}","launch") HotKeySet("^!{SPACE}","launch") ;If $search = "cmd" then ; Run("cmd.exe") ; return ;elseif Stringleft($search,4) = "url " then ; $url = Stringtrimleft($search,4) ; Run(@ComSpec & " /c Start " & $url, "", @SW_HIDE) ;elseif Stringleft($search,7) = "google " then ; $google = stringreplace("http://www.google.com/search?hl=en&q=" & Stringtrimleft($search,7)," ","+") ; Run(@ComSpec & " /c Start " & $google, "", @SW_HIDE) ; return if $selected = "" then If StringLeft($sfound,1) = "|" then $sfound = StringTrimLeft($sfound,1) $sfsplit = StringSplit($sfound,"|") $selected = $sfsplit[1] Endif for $x = 1 to $curr If $all[$x][7] = $selected then $selected = $all[$x][0] exitloop Endif next select case StringRight($all[$x][0],4) = ".exe" Run($selected) case StringRight($all[$x][0],4) = ".bat" Run($selected) case StringRight($all[$x][0],4) = ".com" Run($selected) case StringRight($all[$x][0],4) = ".pif" Run($selected) case StringRight($all[$x][0],5) = ".html" Run(@ComSpec & " /c Start " & $selected, "", @SW_HIDE) case StringRight($all[$x][0],4) = ".htm" Run(@ComSpec & " /c Start " & $selected, "", @SW_HIDE) case StringRight($all[$x][0],4) = ".chm" Run(@ComSpec & " /c Start " & $selected, "", @SW_HIDE) case else msgbox(48,"ERROR","Sorry, I was not able to launch this programm!") endselect Endfunc