AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Hotkey - Wo ist der Fehler?

Ein Thema von MaToBe · begonnen am 9. Nov 2008 · letzter Beitrag vom 15. Jun 2009
Antwort Antwort
MaToBe

Registriert seit: 2. Aug 2008
162 Beiträge
 
#1

Hotkey - Wo ist der Fehler?

  Alt 9. Nov 2008, 16:40
Delphi-Quellcode:
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.
Ich wette da ist irgendwo ein ganz einfach Fehler drin versteckt, aber leider finde ich ihn einfach nicht.

Problem: Das Programm tut garnichts, auch keine Fehlermeldung.
  Mit Zitat antworten Zitat
MaToBe

Registriert seit: 2. Aug 2008
162 Beiträge
 
#2

Re: Hotkey - Wo ist der Fehler?

  Alt 9. Nov 2008, 19:17
sorry ich habs selbst gefunden, ist erledigt.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Hotkey - Wo ist der Fehler?

  Alt 9. Nov 2008, 20:13
Zitat von MaToBe:
sorry ich habs selbst gefunden, ist erledigt.
Schön, dass du den Fehler gefunden hast. Vielleicht interessiert die Lösung auch andere?
Thomas
  Mit Zitat antworten Zitat
MasterTobi

Registriert seit: 29. Apr 2007
212 Beiträge
 
#4

Re: Hotkey - Wo ist der Fehler?

  Alt 15. Jun 2009, 10:05
RegisterHotKey(Handle, 1,0, ord($31)); ich denke ma das ist die lösung, so gehts bei mir zumindest
MFG
Tobi
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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