Anwendung zur Superbar hinzufügen
Da ich schon länger danach gesucht habe, hier eine kurze und schnelle Möglichkeit, den Schnellstart einer Anwendung an die Superbar zu heften.
Code:
Beispiel: PinToTaskbar('c:\windows','Notepad.exe');
procedure PinToTaskbar(strPath, strApp: AnsiString);
var Buffer: array [0 .. 1023] of char; BufferLen: Integer; vShell, vFolder, vFolderItem, vItemVerbs: Variant; vPath, vApp: Variant; Count: Integer; dllHnd: LongInt; ItemName, FnkName: AnsiString; begin Try dllHnd := SafeLoadLibrary('Shell32.dll'); If dllHnd<32 then Exit; BufferLen := LoadString(dllHnd, 5386, Buffer, 255); FreeLibrary(dllHnd); if (BufferLen>0) then begin SetString(FnkName, Buffer, BufferLen); vShell := CreateOleObject('Shell.Application'); vPath := strPath; vFolder := vShell.NameSpace(vPath); vApp := strApp; vFolderItem := vFolder.ParseName(vApp); vItemVerbs := vFolderItem.Verbs; for Count := 1 to vItemVerbs.Count do begin ItemName := vItemVerbs.Item(Count).Name; if (ItemName=FnkName) then begin vItemVerbs.Item(Count).DoIt; break; end; end; end; Except End; end; |
AW: Anwendung zur Superbar hinzufügen
Nur als Hinweis: Es war Absicht von Microsoft, keine programmatische Möglichkeit einzubauen, mit denen Programme sich selbst (oder irgendwelche anderen Dinge) an die Taskleiste oder das Startmenü anheften. Mehr Infos zu den Hintergründen bei StackOverflow sowie The Old New Thing.
Um dennoch etwas in die "unerlaubte" Richtung zu sagen: Die Sache geht noch einfacher: ShellExecute mit den - offenbar komplett undokumentierten - Verbs "taskbarpin" bzw. "taskbarunpin". Ersteres funktioniert natürlich nur mit der zu pinnenden Datei, letzteres ausschließlich mit der entstandenen .lnk im entsprechenden Verzeichnis (Quick Launch\User Pinned\Taskbar). MfG Dalai |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz