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 Tasten und Windows Messages (https://www.delphipraxis.net/13305-tasten-und-windows-messages.html)

F.W. 15. Dez 2003 20:03


Tasten und Windows Messages
 
Ich bin oft sehr beschäftigt und es gibt Programme, wie z.B. meinen Dateibrowser oder den InternetExplorer, die ich ständig benutze.

Und da hab' ich mir gedacht, ich programmiere ein Programm, was im Hintergrund mitläuft und wenn ich bsw. "i" auf der Tastatur drücke, soll der InternetExplorer starten.

Wo die Programme sind, soll in einem Optionsfenster vorher eingegeben und in einer Datei gespeichert werden. Mit ShellExecute sollen sie dann aufgerufen werden.

Kann man da nicht irgendwie Windows Messages abfangen? (Ich habe aber leider keine Ahnung von Messages und abfangen :( )

toms 15. Dez 2003 20:11

Re: Tasten und Windows Messages
 
Zitat:

ich programmiere ein Programm, was im Hintergrund mitläuft und wenn ich bsw. "i" auf der Tastatur drücke, soll der InternetExplorer starten.
Hi,

Grundsätzlich kannst du dafür die RegisterHotKey() API verwenden.
Diese registriert einen systemweiten Hotkey und löst ein Ereignis aus, wenn jener gedrückt wurde.

Wenn du das Rad nicht neu erfinden möchtest, könntest du auch mal WinKey anschauen. Ist ganz nett und Freeware!

F.W. 16. Dez 2003 20:23

Re: Tasten und Windows Messages
 
Und wie muss das dann aussehen, damit's funktioniert? Die ganzen Variablen, die verlangt werden sagen mir garnichts. Ich hab's halt nicht so mit sowasen.

SirThornberry 16. Dez 2003 20:37

Re: Tasten und Windows Messages
 
Delphi-Quellcode:
[...]
  private
    procedure WMHotKey(var Msg: TWMHotKey); Message WM_HOTKEY;
[...]
procedure TForm1.WMHotKey(Var Msg: TWMHotkey);
begin
 if Msg.idHotKey = 1 then
 begin
   //Alt + Y
 end;
 if Msg.idHotKey = 2 then
 begin
   //Alt + Z
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  RegisterHotKey(Form1.Handle, 1, MOD_Alt, Ord('Y'));
  RegisterHotKey(Form1.Handle, 2, MOD_Alt, Ord('Z'));
end;

procedure TForm1.FormClose(......
begin
  UnregisterHotKey(Self.Handle, 1);
  UnregisterHotKey(Self.Handle, 2);
end;
[edit=Luckie]Delphi-tag korrigiert. Mfg, Luckie[/edit]

Luckie 16. Dez 2003 20:55

Re: Tasten und Windows Messages
 
Zitat:

Zitat von F.W.
Ich bin oft sehr beschäftigt und es gibt Programme, wie z.B. meinen Dateibrowser oder den InternetExplorer, die ich ständig benutze.

Und da hab' ich mir gedacht, ich programmiere ein Programm, was im Hintergrund mitläuft und wenn ich bsw. "i" auf der Tastatur drücke, soll der InternetExplorer starten.

Wo die Programme sind, soll in einem Optionsfenster vorher eingegeben und in einer Datei gespeichert werden. Mit ShellExecute sollen sie dann aufgerufen werden.

Kann man da nicht irgendwie Windows Messages abfangen? (Ich habe aber leider keine Ahnung von Messages und abfangen :( )

Wobei das "i" sehr sinnvoll ist. :roll: Mit obigen Posting hättest du den IE schon 33 mal geöffnet. :mrgreen:

Alexander 17. Dez 2003 08:22

Re: Tasten und Windows Messages
 
Kann man nicht schon von Windows aus Shortcuts für verschiedene Programme einstellen? Ich weiß leider auch nicht mehr wie, aber ich meine es geht...
Bin gerade in der Schule, da kann ich das leider nicht ausprobieren.

F.W. 20. Dez 2003 17:23

Re: Tasten und Windows Messages
 
Ich glaube das lass ich lieber, das ist alles ziemlich schwer, bis ich mich da durchgedacht habe, denn man will ja auch wissen, was überhaupt in der Anwendung steht!

Ich glaube das probier ich erst wieder, wenn ich mehr Erfahrung habe, trotzdem danke!!

c113plpbr 20. Dez 2003 20:10

Re: Tasten und Windows Messages
 
Zitat:

Kann man nicht schon von Windows aus Shortcuts für verschiedene Programme einstellen? Ich weiß leider auch nicht mehr wie, aber ich meine es geht...
Bin gerade in der Schule, da kann ich das leider nicht ausprobieren.
Unter XP:
Klicke mit rechts auf eine Verknüpfung (in diesem Fall internetexplorer) und dann im Kontextmenü auf Eigenschaften. Im nun erscheinenden Fenster ist ein Eingabefeld vor dem 'Tastenkombination' steht. Klick in das Feld, gib eine Tastenkombination ein (die Betreffenden Tasten gleichzeitig drücken) und klick dann auf ok. Wenn du nun die Tastenkombination drückst sollte was passieren ...

Ich schätze mal das dies unter den anderen Windows systemen auch möglich ist ...

hoffe das dies geholfen hat, wenn du es auch schon aufgebeben hast ...


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