AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Eigene Anwendung/Fenster nach vorne holen per Shortcut
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Anwendung/Fenster nach vorne holen per Shortcut

Ein Thema von Jumpy · begonnen am 4. Dez 2012 · letzter Beitrag vom 12. Dez 2012
Antwort Antwort
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#1

AW: Eigene Anwendung/Fenster nach vorne holen per Shortcut

  Alt 4. Dez 2012, 15:20
Es geht auch mit Windows Bordmittel:
Lege von Deinem Programm eine Verknüpfung an.
Dann mit rechter Maustaste auf die Verknüpfung klicken und Menüpunkt Eigenschaften wählen.
Im Dialog Eigenschaften auf der Lasche Verknüpfung kann der Anwender eine Tastenkombination festlegen indem er den Cursor in das Eingabefeld setzt und die gewünschte Taste drückt.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Eigene Anwendung/Fenster nach vorne holen per Shortcut

  Alt 4. Dez 2012, 15:39
Ich weiß ja nicht was genau Du machst, aber so etwas geht auch ....

Delphi-Quellcode:
program Project2;

uses
  Windows,Forms, messages,Dialogs,
  Unit3 in 'Unit3.pas{Form3};

{$R *.res}
var
  FHandle:Cardinal;
const
  HotkeyID=12345;
  type
  TDummy=Class
     Class procedure MyOnMessage(var Msg: TMsg; var Handled: Boolean);
  End;




{ TDummy }

class procedure TDummy.MyOnMessage(var Msg: TMsg; var Handled: Boolean);
begin
  if msg.message=WM_HOTKEY then
    begin
       Showmessage('Hallo');
       Handled := true;
    end
  else
    begin
       Handled := false;
    end;

end;

begin

  Application.Initialize;
  RegisterHotKey(Application.Handle, HotkeyID , MOD_CONTROL, VK_F10);
  FHandle := Application.Handle;
  Application.ShowMainForm:= false;
  ShowWindow(Application.Handle, SW_HIDE) ;
  SetWindowLong(Application.Handle, GWL_EXSTYLE, getWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW) ;
  Application.CreateForm(TForm3, Form3);
  Application.OnMessage := TDummy.MyOnMessage;
  Application.Run;

  UnregisterHotKey(FHandle, HotkeyID);
end.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#3

AW: Eigene Anwendung/Fenster nach vorne holen per Shortcut

  Alt 4. Dez 2012, 17:16
Schließe mich Pfaffe an, weil: dafür würde ich nicht extra ein Programm erweitern. Die Windows Funktion funktioniert wunderbar. Grüße
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Eigene Anwendung/Fenster nach vorne holen per Shortcut

  Alt 5. Dez 2012, 08:01
Irgendwie hatte ich gestern einen schlechten Tag. Bummis erste Lösung funktioniert genau wie angegeben. Ich war nur irgendwie mit den Handeln durcheinander gekommen. Eingebaut hab ich es nun in die MainForm und in der dann aufgerufenen Funktion benutze ich SetForegroundWindow nun mit dem Handle des Forms, dass ich nach vorne holen will und so klappt's dann.

Ein anderer Denkfehler war, das SetForegroundWindow nach einem showmessage zu platzieren. So kamm das versteckte ShowMessage mit dem OK-Button, dass ich aber nicht sehen konnte, weil es hinter anderen Fenstern versteckt war (k.A. warum das showmessage nicht System-Modal ist oder ist das bei keiner Anwendung so? Erinner mich gerade nicht). Da ich so zunächst nie OK klicken konnte, kam auch das Fenster nicht nach vorne.
Kommt das Showmessage nach dem SetForegroundWindow klappte es dann natürlich.

Es gibt halt Tage an denen ich wünschte ich wäre ein Kaffee-Trinker und könnte mir mit einer Kanne Kaffee die Spinnweben aus dem Kopf spülen

@Pfaffe/Jonas:
Habt natürlich irgendwo recht, aber ich haue in dem Fall lieber 10 Zeilen mehr in den Quellcode, als bei 40 Kollegen rumzurennen und denen den Short-Cut einzurichten. Darauf würde das nämlich hinauslaufen, wie ich unseren Haufen hier kenne.
Ralph
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Eigene Anwendung/Fenster nach vorne holen per Shortcut

  Alt 12. Dez 2012, 11:01
Hallo,

ich muss das nochmal rauskramen hier, weil ich da eine kleine Abwandlung brauche. Ich schaffe es das betroffene Fenster nach vorne zu holen:

Delphi-Quellcode:
procedure TMain.WMHotKey(var Message: TMessage);
begin
  SetForegroundWindow(DF.Handle);
end;
Aber der Fokus ist noch bei einer Anwendung/Fenster die/das vorher den Fokus hatte (sprich Fenster-Rahmen ist oben noch blau). Wie hole ich mein Fenster/Anwendung nicht nur nach vorne, sondenr geb ihr auch den Fokus bzw. mach sie zur aktiven Anwendung?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Eigene Anwendung/Fenster nach vorne holen per Shortcut

  Alt 12. Dez 2012, 12:27
Nicht ausprobiert, aber klappt es mit MSDN-Library durchsuchenBringWindowToTop?
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
Antwort Antwort


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 19:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz