Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PinAppToTaskbar unter Windows 10 (https://www.delphipraxis.net/194369-pinapptotaskbar-unter-windows-10-a.html)

greenmile 13. Nov 2017 11:28

PinAppToTaskbar unter Windows 10
 
Hallo,

ich habe irgendwo (ev hier im Forum?) die folgende Procedure gefunden, die ich per Installer aufrufe und die unter Windows 7 korrekt funktioniert. Leider funktioniert sie unter Windows 10 nicht. Hat da jemand eine Windows10 Variante?

Code:
  procedure PinAppToTaskbar(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
    If (strPath='') or (strApp='') then Exit;
    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;

TiGü 13. Nov 2017 12:29

AW: PinAppToTaskbar unter Windows 10
 
Bitte nicht! :shock:

https://blogs.msdn.microsoft.com/old...30-00/?p=43273

Daniel 13. Nov 2017 12:50

AW: PinAppToTaskbar unter Windows 10
 
Wieso? Wenn der Anwender gefragt wird, kann das ein angenehmer Service sein.
Ich habe eine Handvoll Anwendungen, die ich in jedem neuen Windows an die Taskbar pappe und wenn deren Setup-Routinen mir dies - optional - anbieten würden, wäre das super.

Aber genau genommen war es auch nicht die Frage, ob Du oder ich dieses Verhalten wünschen. Es ging um die Lösung eines technischen Problems. Der Hinweis, dass es diese Funktion offenbar bewusst nicht gibt, ist ja richtig - aber die Entscheidung muss der Entwickler dann schon selbst treffen und dann eben auch mit den positiven oder negativen Konsequenzen leben.

TiGü 13. Nov 2017 13:09

AW: PinAppToTaskbar unter Windows 10
 
Andererseits ist so ein Gehacke wie im Ursprungspost bei der nächsten Windows-Version wieder hinfällig, weil sich irgendetwas verschiebt.

Um noch was praktisches beizutragen:
Delphi-Quellcode:
if (ItemName=FnkName) then
wird nie True.

himitsu 13. Nov 2017 18:10

AW: PinAppToTaskbar unter Windows 10
 
Man kann sich alle "FnkName" (LoadString) auflisten lassen (0-65000 oder mit'm Ressource-Editor)
und auch ausgeben wie alle "ItemName" heißen.

Die Items sind quasi MenüItems im Explorer-Kontextmenü. "An Taskbar anheften" :zwinker:


Nja, Windows ist auch nicht besser.
Bei mir haut das bei jedem Rechnerneustart angetackerte Links aus der Taskbar raus, die auf ein SUBST-Laufwerk verweisen.
(zum Glück ist das ein Server und der wird nicht oft neu gestartet)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 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