AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Rechtsklick in minimierter Caption abfangen
Thema durchsuchen
Ansicht
Themen-Optionen

Rechtsklick in minimierter Caption abfangen

Ein Thema von Amateurprofi · begonnen am 24. Mai 2019 · letzter Beitrag vom 21. Jun 2021
Antwort Antwort
Seite 1 von 3  1 23      
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#1

Rechtsklick in minimierter Caption abfangen

  Alt 24. Mai 2019, 18:43
Wenn ein Programm minimiert ist, wird beim Klicken in die minimierte Caption in der Taskleiste
1) Bei Linksklick das Programmfenster "geöffnet"
2) Bei Rechtsklick ein Menu geöffnet, in dem verschiedene Optionen angeboten werden.

Ich möchte, dass mein Programm einen Rechtsklick in die minimierte Caption abfängt und darauf reagiert.

Hintergrund:
Das Programm spielt den ganzen Tag Musikstücke ab.
Wenn ich einen Anruf erhalte will ich die Wiedergabe anhalten und wieder starten können, OHNE dafür das Programmfenster "offnen" zu müssen.

Ich habe bei den Schweizern folgendes gefunden, was aber nur funktioniert, wenn das Programmfenster geöffnet es.
Wenn es minimiert in der Tastleiste liegt, funktioniert das nicht.
" funktioniert das nicht" heißt, die Prozedur "TForm1.WMNCRBUTTONDOWN" wird nicht aufgerufen.

Weiß jemand eine Lösung für das Problem?

In der Deklaration der Form
Delphi-Quellcode:
private
   procedure WMNCRBUTTONDOWN(var msg: TMessage); message WM_NCRBUTTONDOWN;
end;
Im Implementation Abschnitt
Delphi-Quellcode:
Procedure TForm1.WMNCRBUTTONDOWN(var msg: TMessage);
begin
   if msg.wParam = HTCAPTION then Caption := 'Right Click!';
   // Message.Result := 0; {to ignore the message}
   inherited;
end;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....

Geändert von Amateurprofi (25. Mai 2019 um 02:04 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#2

AW: Rechtsklick in minimiete Caption abfangen

  Alt 24. Mai 2019, 18:56
Zitat:
Ich habe bei den Schweizern folgendes gefunden, was aber nur funktioniert, wenn das Programmfenster geöffnet es.
Dafür bieten sich doch perfekt Task-Buttons an oder wie die heißen. Diese Buttons im Taskicon die auch VLC hat.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Rechtsklick in minimierter Caption abfangen

  Alt 26. Mai 2019, 16:11
Seit XE6 oder XE7 gibt es die bereits angesprochenen TTaskBarButtons. Die sind genau dafür gedacht. Es gibt sogar eine Demo dafür im Demo Verzeichnis. Schau dir mal an was mit der TaskBar alles gemacht werden kann.

Hier noch ein etwas ausführlicherer Blogeintrag von Marco Cantu der das Thema behandelt. Ist aber im Prinzip nix anderes, als das er die Demo durchkaut.

EDIT: In deinem Profil steht XE2. Keine Ahnung ob das noch stimmt. Falls ja, dann müsstest du das entsprechende Interface von Microsoft manuell implementieren. Ist halt etwas mehr Aufwand, funktioniert aber genau so.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#4

AW: Rechtsklick in minimierter Caption abfangen

  Alt 26. Mai 2019, 16:18
EDIT: In deinem Profil steht XE2. Keine Ahnung ob das noch stimmt. Falls ja, dann müsstest du das entsprechende Interface von Microsoft manuell implementieren. Ist halt etwas mehr Aufwand, funktioniert aber genau so.
Oder einfach Windows7TaskbarComponents nehmen. Ich habe 10.3 und benutze trotzdem Windows7TaskbarComponents.
https://delphi.fsprolabs.com/
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Rechtsklick in minimierter Caption abfangen

  Alt 26. Mai 2019, 17:03
Also wenn ich das als BuiltIn Funktion hätte, dann würde ich die auch benutzen. Zumal die von dir verlinkte Komponente offiziell nur bis XE2 unterstützt wird.

component.png
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#6

AW: Rechtsklick in minimierter Caption abfangen

  Alt 26. Mai 2019, 17:10
Funktioniert wie gesagt einwandfrei mit 10.3.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Rechtsklick in minimierter Caption abfangen

  Alt 27. Mai 2019, 03:10
Funktioniert wie gesagt einwandfrei mit 10.3.
Danke für den Tipp.
Leider für mich nicht tauglich (XE 2).
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

AW: Rechtsklick in minimierter Caption abfangen

  Alt 27. Mai 2019, 07:30
Zumal die von dir verlinkte Komponente offiziell nur bis XE2 unterstützt wird.
Leider für mich nicht tauglich (XE 2).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#9

AW: Rechtsklick in minimierter Caption abfangen

  Alt 27. Mai 2019, 12:09
Abgesehen davon läuft die Komponente bis 10.3 problemlos.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#10

AW: Rechtsklick in minimierter Caption abfangen

  Alt 27. Mai 2021, 12:17
Falls jemand ähnliches vorhat:
Ich habe mein Problem jetzt so gelöst:

1) Ein kurzes Programm geschrieben.
2) Eine Verknüpfung auf den Desktop gelegt.
3) Dieser einen Shortcut zugewiesen (Alt-Ctrl- .) (war erstaunt, dass " . " als Shortcut funktioniert.)

Wenn ich jetzt Alt-Ctrl-. drücke, wird
A) wenn das Musik.Programm geöffnet ist, diesem eine Message geschickt, die von dem Musik-Programm entsprechend verarbeitet wird.
B) wenn das Musik.Programm nicht geöffnet ist, wird es mit ShellExecute geöffnet.
Das funktioniert prächtig und gefällt mir noch besser als meine ursprüngliche Idee mit Rechtsklick auf die minimierte Caption in der TaskBar.
Was mir nicht gefällt: Das Programm "blitzt" kurz auf; hab noch keine Lösung gefunden, das zu verhindern.
Vielleicht weiß ja jemand auch dafür eine Lösung.

Delphi-Quellcode:
program ToggleMusic;

{$APPTYPE CONSOLE}

{$R *.res}

uses
   WinApi.Windows, WinApi.ShellApi,
   System.SysUtils;

const MusicPath='E:\Daten\Delphi XE2\Music\Win32\Debug\Music.exe';
var Win:HWND; StartUpInfo:TStartUpInfo; Dsn:String;
begin
   StartupInfo.cb:=SizeOf(StartUpInfo);
   StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
   StartupInfo.wShowWindow:=SW_HIDE;
   Win:=FindWindow(Nil,'Music Player');
   if Win<>0 then begin
      PostMessage(Win,$7FFF,0,0);
   end else begin
      Dsn:=MusicPath;
      if FileExists(Dsn) then
         ShellExecute(0,'open',PWideChar(Dsn),nil,nil,SW_SHOWNORMAL);
   end;
end.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 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