Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Hotkey und eigenes Hauptfenster (https://www.delphipraxis.net/60145-hotkey-und-eigenes-hauptfenster.html)

bioser 3. Jan 2006 20:29


Hotkey und eigenes Hauptfenster
 
Hallo,

ich habe das Problem, daß aus einer fremden Anwendung heraus
mein eigenes Hauptfenster trotz "Form1.Show" nicht angezeigt wird,
wenn mein Hotkey gedrückt wird.
Sonst funktioniert alles. Es hängt wohl damit zusammen, daß meine
Anwendung dann den Focus nicht mehr hat. Wer kann helfen ?

Beste Grüße
BIOSER

Luckie 3. Jan 2006 20:35

Re: Hotkey und eigenes Hauptfenster
 
Wenn du den Hotkey mit RegisterHotKey registriert hast, sollte es auch gehen, wenn dein Fenster den Focus nicht hat, dazu ist er ja da. Bei Hotkeys gilt aber, wer zu erst kommt, mahlt zu erst.

faux 3. Jan 2006 20:41

Re: Hotkey und eigenes Hauptfenster
 
Hallo!

Vielleicht hat diese fremde Anwendung die Tastenkombination für sich selbst belegt.

Grüße
Faux

bioser 3. Jan 2006 21:04

Re: Hotkey und eigenes Hauptfenster
 
Zitat:

Zitat von faux
Hallo!

Vielleicht hat diese fremde Anwendung die Tastenkombination für sich selbst belegt.

Grüße
Faux

Nein, ausgeschlossen.
Der Hotkey funktioniert, nur aus einer anderen Anwendung heraus nicht.
Ich verstehe nicht, warum mein Hauptfenster nicht angezeigt wird.

Delphi-Quellcode:
if (msg.WParam = AtomID) then // Hotkey gedrückt?
  begin
   mainform.show;
  end;
 end;

Luckie 3. Jan 2006 21:12

Re: Hotkey und eigenes Hauptfenster
 
Wie aus einer anderen Anwendung heraus? Wenn ein anderes Fenster den Focus hat oder wie? Dann funktioniert er eben nicht wie er soll. Entweder machst du was falsch oder er wird nicht korrekt registriert. Was gibt denn MSDN-Library durchsuchenRegisterHotKey zurück und was sagt MSDN-Library durchsuchenGetLastError dazu?

bioser 3. Jan 2006 21:24

Re: Hotkey und eigenes Hauptfenster
 
ja, genau, wenn ein anderes Fenster den Focus hat.
Dann geht der Hotkey nicht ?
Was gibt es denn für Alternativen ?

faux 3. Jan 2006 21:24

Re: Hotkey und eigenes Hauptfenster
 
Zitat:

Zitat von bioser
ja, genau, wenn ein anderes Fenster den Focus hat.
Dann geht der Hotkey nicht ?
Was gibt es denn für Alternativen ?

Genau *das* ist der Sinn des HotKeys, hat Luckie in seinem ersten Post gesagt. ;)
Poste mal deinen ganzen Code, der den HotKey betrifft.

Grüße
Faux

bioser 3. Jan 2006 21:40

Re: Hotkey und eigenes Hauptfenster
 
achso, ich hatte es falsch verstanden.

Im OnCreate habe ich dies hier:

Delphi-Quellcode:
AtomID := GlobalAddAtom('MyHotkeyAtom');
RegisterHotKey(Handle, AtomID, MOD_CONTROL, vk_NumPad1);
Im OnDestroy entsprechend dies:

Delphi-Quellcode:
UnregisterHotKey(Handle, AtomID);
GlobalDeleteAtom(AtomID);
Mehr nicht. Vielleicht fehlt tatsächlich noch was.

Luckie 3. Jan 2006 21:46

Re: Hotkey und eigenes Hauptfenster
 
Zitat:

Zitat von Luckie
Was gibt denn MSDN-Library durchsuchenRegisterHotKey zurück und was sagt MSDN-Library durchsuchenGetLastError dazu?


bioser 3. Jan 2006 21:52

Re: Hotkey und eigenes Hauptfenster
 
True und 0

bioser 3. Jan 2006 23:03

Re: Hotkey und eigenes Hauptfenster
 
Nun habe ich nochmal den Hotkey-Tip aus dem SWISSDELPHICENTER
ausprobiert. Alles unverändert.
ShowMessage wird nicht angezeigt, wenn ich den IExplorer benutze,
sondern nur, wenn nichts auf dem DESKTOP ist.

bioser 3. Jan 2006 23:46

Re: Hotkey und eigenes Hauptfenster
 
Anscheinend ist ein Hotkey nicht das, was ich suche.
Ich will aus irgendeiner Anwendung heraus, zum Beispiel
den Internet Explorer durch einen Tastendruck meine
Anwendung AUTOMATISCH anzeigen und dann weitere
Berechnungen durchführen lassen. :wall:

toms 3. Jan 2006 23:50

Re: Hotkey und eigenes Hauptfenster
 
Wird denn der Code
Delphi-Quellcode:
mainform.show;
ausgefuehrt?

Rastaman 3. Jan 2006 23:53

Re: Hotkey und eigenes Hauptfenster
 
Natürlich ist ein HotKey dazu da, aber dein Programm muss halt auch laufen ...
Ausserdem mit dem ShowMessage: Ich glaube, wenn man das per Hotkey macht, dann wird die Message erst sichtbar, wenn man das Formular wieder anwählt, bin jetzt aber nich so ganz sicher.

bioser 4. Jan 2006 08:12

Re: Hotkey und eigenes Hauptfenster
 
hi, genau, das ShowMessage zum Beispiel erscheint erst, wenn ich
mein Programm wieder anwähle (maximiere). Ich möchte aber, daß es
automatisch kommt.

Luckie 4. Jan 2006 08:17

Re: Hotkey und eigenes Hauptfenster
 
ShowMessage ist anwendungsmodal, das heißt, wenn dein Program,m nicht den Focus hat wird auch die Messagebox entsprechend im Hintergrung geöffnet. Benutzt mal die API-Funktion MSDN-Library durchsuchenMessageBox mit den zusätzlichen Flags SYSTEMMODAL oder wie das heißt.

bioser 4. Jan 2006 08:39

Re: Hotkey und eigenes Hauptfenster
 
Leute, manchmal kann's so einfach sein.

Application.BringToFront

Und schon macht es das, was es will

Luckie 4. Jan 2006 08:42

Re: Hotkey und eigenes Hauptfenster
 
Funktioniert das auch unter XP? Ich meine mal gelesen zu haben, dass man unter XP Fenster nicht mehr so einfach in den Vordergrund drängen kann.

freak4fun 4. Jan 2006 08:42

Re: Hotkey und eigenes Hauptfenster
 
Hallo :hi:,

Zitat:

Zitat von Luckie
ShowMessage ist anwendungsmodal, das heißt, wenn dein Program,m nicht den Focus hat wird auch die Messagebox entsprechend im Hintergrung geöffnet. Benutzt mal die API-Funktion MSDN-Library durchsuchenMessageBox mit den zusätzlichen Flags SYSTEMMODAL oder wie das heißt.

Es heißt MB_SYSTEMMODAL und funktioniert. :)

Zitat:

Zitat von bioser
Leute, manchmal kann's so einfach sein.
Application.BringToFront
Und schon macht es das, was es will

Das geht natürlich auch. :thumb:

MfG
freak

Luckie 4. Jan 2006 08:44

Re: Hotkey und eigenes Hauptfenster
 
Zitat:

Zitat von freak4fun
Hallo :hi:,

Zitat:

Zitat von Luckie
ShowMessage ist anwendungsmodal, das heißt, wenn dein Program,m nicht den Focus hat wird auch die Messagebox entsprechend im Hintergrung geöffnet. Benutzt mal die API-Funktion MSDN-Library durchsuchenMessageBox mit den zusätzlichen Flags SYSTEMMODAL oder wie das heißt.

Es heißt MB_SYSTEMMODAL und funktioniert. :)

Man kann nicht alles im Kopf habe, aber Gott sei dank gibt es ja AutoComplete und ich wußte wo es steht, das reicht. ;)

bioser 4. Jan 2006 08:44

Re: Hotkey und eigenes Hauptfenster
 
Zitat:

Zitat von Luckie
Funktioniert das auch unter XP? Ich meine mal gelesen zu haben, dass man unter XP Fenster nicht mehr so einfach in den Vordergrund drängen kann.

Ja, auch unter XP.

toms 4. Jan 2006 23:47

Re: Hotkey und eigenes Hauptfenster
 
Zitat:

Zitat von Luckie
Funktioniert das auch unter XP? Ich meine mal gelesen zu haben, dass man unter XP Fenster nicht mehr so einfach in den Vordergrund drängen kann.

Sonst einfach Bei Google suchenForceForeGroundWindow verwenden...


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