![]() |
Hotkey - Wo ist der Fehler?
Delphi-Quellcode:
Ich wette da ist irgendwo ein ganz einfach Fehler drin versteckt, aber leider finde ich ihn einfach nicht.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, XPMan, StdCtrls; type TForm1 = class(TForm) edt5: TEdit; Label1: TLabel; Image1: TImage; edt6: TEdit; edt7: TEdit; edt8: TEdit; edt9: TEdit; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; procedure FormCreate(Sender: TObject); private procedure WmHotkey(var Msg: TMessage); message WM_HOTKEY; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} //Text umwandeln in Keybd_event Code procedure EnterText(AText: String); var lCount : Integer; lScanCode : Smallint; lWithAlt, lWithCtrl, lWithShift : Boolean; begin for lCount := 1 To Length(AText) Do begin lScanCode := VkKeyScan(AText[lCount]); //Ermitteln ob Shift gedrückt wurde lWithShift := lScanCode and (1 shl 8) <> 0; //Ermitteln ob Strg gedrückt wurde lWithCtrl := lScanCode and (1 shl 9) <> 0; //Ermitteln ob Alt gedrückt wurde lWithAlt := lScanCode and (1 shl 10) <> 0; if lWithShift then keybd_event(VK_SHIFT, 0, 0, 0); if lWithCtrl then keybd_event(VK_CONTROL, 0, 0, 0); if lWithAlt then keybd_event(VK_MENU, 0, 0, 0); keybd_event(lScanCode, 0, 0, 0); keybd_event(lScanCode, 0, KEYEVENTF_KEYUP, 0); if lWithAlt then keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0); if lWithCtrl then keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); if lWithShift then keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end; end; procedure TForm1.FormCreate(Sender: TObject); begin RegisterHotKey(Handle, 1, MOD_CONTROL or MOD_SHIFT, $35); RegisterHotKey(Handle, 2, MOD_CONTROL or MOD_SHIFT, $36); RegisterHotKey(Handle, 3, MOD_CONTROL or MOD_SHIFT, $37); RegisterHotKey(Handle, 4, MOD_CONTROL or MOD_SHIFT, $38); RegisterHotKey(Handle, 5, MOD_CONTROL or MOD_SHIFT, $39); end; //Senden per Hotkey procedure TForm1.WmHotkey(var Msg: TMessage); begin if (Msg.WParam = 1) then begin if edt5.text <> ('') then begin EnterText(edt5.text); end else ShowMessage ('Sie haben für diesen Hotkey noch keinen Text eingegeben.'); end; if (Msg.WParam = 2) then begin if edt6.text <> ('') then begin EnterText(edt6.text); end else ShowMessage ('Sie haben für diesen Hotkey noch keinen Text eingegeben.'); end; if (Msg.WParam = 3) then begin if edt7.text <> ('') then begin EnterText(edt7.text); end else ShowMessage ('Sie haben für diesen Hotkey noch keinen Text eingegeben.'); end; if (Msg.WParam = 4) then begin if edt8.text <> ('') then begin EnterText(edt8.text); end else ShowMessage ('Sie haben für diesen Hotkey noch keinen Text eingegeben.'); end; if (Msg.WParam = 5) then begin if edt9.text <> ('') then begin EnterText(edt9.text); end else ShowMessage ('Sie haben für diesen Hotkey noch keinen Text eingegeben.'); end; end; end. Problem: Das Programm tut garnichts, auch keine Fehlermeldung. |
Re: Hotkey - Wo ist der Fehler?
sorry ich habs selbst gefunden, ist erledigt. :oops: :wall:
|
Re: Hotkey - Wo ist der Fehler?
Zitat:
|
Re: Hotkey - Wo ist der Fehler?
Delphi-Quellcode:
ich denke ma das ist die lösung, so gehts bei mir zumindest
RegisterHotKey(Handle, 1,0, ord($31));
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 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