![]() |
Delphi-Version: 7
Globale Hotkeys
Hi, ich bin gerade dabei mir ein kleines Tool in Delphi zu basteln und würde gerne einige Funktion auch aus dem Hintergrund per Hotkey abrufen können.
So soll z.B. beim betätigen von ALT + H trotz minimiertem Programm das procedure von Button1.click ausgeführt werden. Hab mir den Code dazu auch schon zusammengesucht und das ganze compiliert jedoch passiert einfach nichts beim betätigen des Hotkeys und ich kann den Fehler nicht finden. Vereinbarungen:
Code:
Hotkey Registrierung/Freigabe:
type
TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Label1: TLabel; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } procedure WmHotkey(var Msg: TMessage); message WM_HOTKEY; public { Public-Deklarationen } end;
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin RegisterHotKey(Handle, 1, MOD_ALT, Ord('H')); end; procedure TForm1.FormDestroy(Sender: TObject); begin UnregisterHotKey(Handle, 1); end; Implementierung:
Code:
Ich hoffe ihr könnt mir helfen.
procedure TForm1.WmHotkey(var Msg: TMessage);
begin if (Msg.WParam = 1) then begin button1.click; end; end; Und seid nicht zu hart mit mir, ich hab erst vor 2 Wochen mit Delphi angefangen. Gruß, Sebastian :) |
AW: Globale Hotkeys
Hallo,
und herzlich Willkommen in der DP. Zitat:
Delphi-Quellcode:
setzt, dann wirst Du sehen, dass da schon etwas passiert, wenn der Hotkey gedrückt wird.
procedure TForm1.WmHotkey(var Msg: TMessage);
Was soll den in
Delphi-Quellcode:
auslösen?
Button1.Click
Gruß |
AW: Globale Hotkeys
Danke für die schnelle Antwort.
Da tut sich leider nichts, wenn ich einen Breakpoint in die
Delphi-Quellcode:
setze.
procedure TForm1.WmHotkey(var Msg: TMessage);
Am
Delphi-Quellcode:
liegts ehr nicht, denn der tut im Moment nur den Inhalt einer Editbox in ein Label schreiben.
Button1.Click
Delphi-Quellcode:
Später will ich den Hotkey in einem anderen Projekt Verwenden.
procedure TForm1.Button1Click(Sender: TObject);
begin label1.caption := edit1.text; end; Hier wollte ich nur das Erstellen von Hotkeys ausprobieren. Der Gesamte Quellcode sieht übrigens so aus:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Label1: TLabel; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } procedure WmHotkey(var Msg: TMessage); message WM_HOTKEY; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin RegisterHotKey(Handle, 1, MOD_ALT, Ord('H')); end; procedure TForm1.WmHotkey(var Msg: TMessage); begin if (Msg.WParam = 1) then; begin button1.click; end; end; procedure TForm1.Button1Click(Sender: TObject); begin label1.caption := edit1.text; end; procedure TForm1.FormDestroy(Sender: TObject); begin UnregisterHotKey(Handle, 1); end; end. EDIT: Mir ist gerade auf gefallen, dass mit
Delphi-Quellcode:
etwas nicht stimmen muss, denn wenn ich da z.B
procedure TForm1.FormCreate(Sender: TObject);
Delphi-Quellcode:
hinzufüge, wird das auch nicht ausgeführt.
label1.Caption := 'test';
|
AW: Globale Hotkeys
Hallo,
Zitat:
Gruß |
AW: Globale Hotkeys
Ah gut.. wieder mal was gelernt. :thumb: Ich wusst nicht, dass man das auch dort zuweisen muss.
Danke für die Hilfe! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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