Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   ITaskBarList3 OverlayIcon (https://www.delphipraxis.net/199362-itaskbarlist3-overlayicon.html)

EWeiss 18. Jan 2019 10:05

ITaskBarList3 OverlayIcon
 
Nur eine kurze frage.
Kann jemand bestätigen dass das OverlayIcon "SetOverlayicon" mit der ITaskBarList3 unter Win10 nicht mehr funktioniert?

gruss

TiGü 18. Jan 2019 10:24

AW: ITaskBarList3 OverlayIcon
 
Wir sollen uns das Testprogramm selber programmieren?

EWeiss 18. Jan 2019 10:29

AW: ITaskBarList3 OverlayIcon
 
Zitat:

Zitat von TiGü (Beitrag 1423519)
Wir sollen uns das Testprogramm selber programmieren?

?
Es waren die Leute angesprochen die Tortoisegit, VLC Player und oder andere Diverse Programme verwenden die ein OverlayIcon in der Taskbar anzeigen.
Da muss man nichts selbst programmieren sondern mir nur bestätigen ob diese bei euch unter Win10 noch funktionieren.
Bei mir jedenfalls nicht.. mit verschiedenen Anwendungen getestet.
Kann aber jetzt nicht sehen ob es an meinem System liegt oder generell nicht mehr funktioniert.

Mehr wollte ich nicht wissen.
Es geht um diese Icons

gruss

TiGü 18. Jan 2019 10:46

AW: ITaskBarList3 OverlayIcon
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, geht noch unter Windows 10.

Siehe Anhang.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.Win.Taskbar, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    btnOverlay: TButton;
    btnDeleteOverlay: TButton;
    procedure btnDeleteOverlayClick(Sender: TObject);
    procedure btnOverlayClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    FTaskBar: System.Win.Taskbar.TWinTaskbar;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnDeleteOverlayClick(Sender: TObject);
begin
  FTaskBar.SetOverlayIcon(0, '');
end;

procedure TForm1.btnOverlayClick(Sender: TObject);
var
  Icon: TIcon;
begin
  Icon := TIcon.Create;
  try
    Icon.LoadFromResourceName(HInstance, 'MAINICON');
 
    if Icon.Width >= 16 then
      FTaskBar.SetOverlayIcon(Icon.Handle, 'Beispiel');
  finally
    Icon.Free;
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FTaskBar.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FTaskBar:= System.Win.Taskbar.TWinTaskbar.Create;
  FTaskBar.MainWindow := Self.Handle;
end;

end.

EWeiss 18. Jan 2019 10:49

AW: ITaskBarList3 OverlayIcon
 
Danke!
Aber dein Sample funktioniert nicht und das wollte ich wissen.
Frage mich nur warum das so ist.

Hmmm.. wieder so ein Mysterium seitens Win10.
Zumindest weis ich jetzt das es nicht an meiner Anwendung liegt.

gruss

TiGü 18. Jan 2019 10:50

AW: ITaskBarList3 OverlayIcon
 
Hast du dein System "optimiert"?

EWeiss 18. Jan 2019 10:51

AW: ITaskBarList3 OverlayIcon
 
Zitat:

Zitat von TiGü (Beitrag 1423527)
Hast du dein System "optimiert"?

Du meinst mit irgendeinem seltsamen Tool? CCleaner und Konsorte?
Nein.

EDIT:
Funktioniert wieder. Danke für dein Sample so konnte ich ausschließen das es an meinem Player lag.
Hatte unter Personalisieren\Taskleiste.. Badges auf Taskleiste, bla, bla ausgeschaltet.
Keine Ahnung was Badges sein sollen aber sei's drum. (Ok habe es übersetzen lassen, destotrotz völlig unnötig und von der Namensgebung sehr schlecht gewählt)
Und warum eine Mischung aus Englisch und Deutsch.. na ja Win10 halt. (Überlagerte Icons ausschalten, dann weis jeder was gemeint ist)

Warum so etwas einen Systemeintrag benötigt mag mal dahin gestellt sein.
Funktionsweisen von Programmen werden dadurch gebrochen.. Stupid für mich sorry.

Mich hatte das etwas irritiert.
https://docs.microsoft.com/en-us/win...setoverlayicon

Zitat:

•If the taskbar button represents a single window, the overlay icon is removed from the display.
•If the taskbar button represents a group of windows and a previous overlay is still available (received earlier than the current overlay, but not yet freed by a NULL value), then that previous overlay is displayed in place of the current overlay.
Hört sich für mich so an das es für ein einzelnes Fenster nicht mehr funktioniert.

gruss


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