Page 1 of 1

Making a Quick Launch ting

Posted: Tue Jun 14, 2005 9:29 pm
by ShadowRunnaX
How do you add a Quick launch ting into the taskbar.

You gotta add straight into the system file or API involved?


Aight, Peace.

Posted: Tue Jun 14, 2005 9:51 pm
by LuCiFeR[SD]
For windows 2000/XP

Create a shortcut to you app and place it in:

C:\Documents and Settings\<USERNAME>\Application Data\Microsoft\Internet Explorer\Quick Launch\

That simple.

For Win 98/ME... same as above but replace the path with:

C:\Windows\Profiles\<USERNAME>\Application Data\Microsoft\Internet Explorer\Quick Launch\

I hope my memory serves me well... LOL.

Oh, if it is a single user win98/ME box... you will probably need to delete the "\Profiles\<USERNAME>\" part.

There is a nice bit of code somewhere on this forum or was it the code archive, that'll probably simplify things by alowing you to use sytem paths directly... with a little modification, it could handle this real easy :)

Hope that helps :)

Ooooooh, just trawled my HD and found this little beauty. Don't know who wrote it or where I found it (sorry, whoever it is) But I think this maybe exactly what you are looking for

Code: Select all

#CSIDL_APPDATA  = $1A 

Structure SHITEMID 
  cb.b 
  abID.b[1] 
EndStructure 

Structure ITEMIDLIST 
  mkid.SHITEMID 
EndStructure 
; Thanks to unknown person(s)for this procedure 
Procedure.s GetQuickLaunchPath() 
  *itemID.ITEMIDLIST = #Null 
  If SHGetSpecialFolderLocation_ (0, #CSIDL_APPDATA, @*itemID.ITEMIDLIST) = #S_OK 
    qlPath$ = Space(#MAX_PATH) 
    If SHGetPathFromIDList_(*itemID, @qlPath$) 
      ; --> Add rest of path for Quick Launch 
      qlPath$ + "\Microsoft\Internet Explorer\Quick Launch\" 
      ProcedureReturn qlPath$ 
    EndIf 
  EndIf 
EndProcedure 
; Thanks to Fred for this procedure :) 
Procedure CreateLink(PATH$, LINK$, Argument$, DESCRIPTION$, WorkingDirectory$, ShowCommand.l, HotKey.l, IconFile$, IconIndexInFile.l) 
  result = 0 
  CoInitialize_(0) 
  If CoCreateInstance_(?CLSID_ShellLink,0,1,?IID_IShellLink,@ShellLink.IShellLinkA) = 0 
    ShellLink\SetPath(@PATH$) 
    ShellLink\SetArguments(@Argument$) 
    ShellLink\SetWorkingDirectory(@WorkingDirectory$) 
    ShellLink\SetDescription(@DESCRIPTION$) 
    ShellLink\SetShowCmd(ShowCommand) 
    ShellLink\SetHotkey(HotKey) 
    ShellLink\SetIconLocation(@IconFile$, IconIndexInFile) 
    If ShellLink\QueryInterface(?IID_IPersistFile, @PersistFile.IPersistFile) = 0 
      mem.s = Space(1000) 
      MultiByteToWideChar_(#CP_ACP, 0, LINK$, -1, mem, 1000) 
      hres = PersistFile\SAVE(@mem,#True) 
      result = 1 
      PersistFile\Release() 
    EndIf 
    ShellLink\Release() 
  EndIf 
  CoUninitialize_() 
  ProcedureReturn result 
EndProcedure 

If OpenWindow(0, 0, 0, 270, 100, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Create Quick Launch link") And CreateGadgetList(WindowID(0)) 
  ButtonGadget(0, 10, 30, 250, 20, "Choose .exe to place in Quick Launch", #PB_Text_Center) 
  Repeat 
    event = WaitWindowEvent() 
    If event = #PB_EventGadget And EventGadgetID() = 0 
      exe2link$ = OpenFileRequester("Choose file", "", "Exe file | *.exe", 0) 
      If exe2link$ 
        ; --> Get file name from path 
        linkName$ = GetFilePart(exe2link$) 
        ; --> Get file name minus .exe extension 
        linkName$ = StringField(linkName$, 1, ".") 
        ; --> Add the .lnk extension 
        linkName$ + ".lnk" 
        ; --> Create the full path for the link 
        linkPath$ = GetQuickLaunchPath() +  linkName$ 
        ; --> Set the working directory 
        workDir$ = GetPathPart(exe2link$) 
        ; --> Create the link 
        If CreateLink(exe2link$, linkPath$, "", "My Quick Launch Shortcut", workDir$, #SW_SHOWMAXIMIZED, 0, exe2link$, 0) 
          MessageRequester("Quick Launch link was succesful", linkPath$) 
        Else 
          MessageRequester("Error", "Quick Launch link failed") 
        EndIf 
      EndIf 
    EndIf 
  Until event = #PB_Event_CloseWindow 
EndIf 
End 
DataSection 
CLSID_ShellLink: 
Data.l $00021401 
Data.w $0000,$0000 
Data.b $C0,$00,$00,$00,$00,$00,$00,$46 
IID_IShellLink: 
Data.l $000214EE 
Data.w $0000,$0000 
Data.b $C0,$00,$00,$00,$00,$00,$00,$46 
IID_IPersistFile: 
Data.l $0000010B 
Data.w $0000,$0000 
Data.b $C0,$00,$00,$00,$00,$00,$00,$46 
EndDataSection 

Posted: Wed Jun 15, 2005 4:49 am
by ShadowRunnaX
Thanks, that was very helpful. :D