Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Taskleistensymbol-Menü verändern (https://www.delphipraxis.net/33455-taskleistensymbol-menue-veraendern.html)

Delphi Star 7. Nov 2004 14:10


Taskleistensymbol-Menü verändern
 
Wenn man in der Taskleiste mit der rechten Maustaste auf den Taskleisten-Eintrag (oder wie auch immer das heißt) klickt geht ja ein Menü mit den Einträgen schließen, minimieren, wiederherstellen usw. auf, wie kann man diese Einträge anpassen (z.B. das ein neuer Eintrag mit dem Namen "Info" angezeigt wird)

runningsoft 7. Nov 2004 14:20

Re: Taskleistensymbol-Menü verändern
 
Im Zweifelsfall bei Billy mal nachfragen :wink:

Im ernst, ich glaub nicht, dass das geht. die Kontextmenüs werden wohl fest im Quellcode codiert sein.

Ich mach grad meinen MCSE und hab von einer solchen Möglichkeit bisher nichts gehört. Und für diesen MCSE nimmst du das BS bis aufs letzte auseinander...

Steffen

Christian Seehase 7. Nov 2004 14:29

Re: Taskleistensymbol-Menü verändern
 
Moin Delphi-Star,

schau Dir dazu mal die API Funktionen MSDN-Library durchsuchenGetSystemMenu, MSDN-Library durchsuchenInsertMenuItem, MSDN-Library durchsuchenSetMenuItemInfo usw. an.
Vermutlich wirst Du auch hier etwas dazu finden.

Sprint 7. Nov 2004 14:33

Re: Taskleistensymbol-Menü verändern
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

const
  WM_USER_INFOMENU = WM_USER + $101;
  S_INFOMENU = '&Info';

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure OnAppMsg(var Msg: TMsg; var Handled: Boolean);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.OnAppMsg(var Msg: TMsg; var Handled: Boolean);
begin

  if (Msg.message = WM_SYSCOMMAND) and (Msg.wParam = WM_USER_INFOMENU) then
  begin
    Application.MessageBox('Hello World!', nil, MB_OK or MB_ICONINFORMATION);
    Handled := True;
  end else
    Handled := False;

end;

procedure TForm1.FormCreate(Sender: TObject);
var
  SysMenu: HMENU;
begin

  Application.OnMessage := OnAppMsg;

  {Application's System Menu}
  SysMenu := GetSystemMenu(Application.Handle, False);
  AppendMenu(Sysmenu, MF_SEPARATOR, 0, nil);
  AppendMenu(SysMenu, MF_STRING, WM_USER_INFOMENU, S_INFOMENU);

  {Form System Menu}
  SysMenu := GetSystemMenu(Self.Handle, False);
  AppendMenu(Sysmenu, MF_SEPARATOR, 0, nil);
  AppendMenu(SysMenu, MF_STRING, WM_USER_INFOMENU, S_INFOMENU);

end;

end.


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