Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi simulierte tastatureingabe aus memofeld (https://www.delphipraxis.net/152546-simulierte-tastatureingabe-aus-memofeld.html)

rhodan 26. Jun 2010 14:17

simulierte tastatureingabe aus memofeld
 
hey!

ich habe in meinem fenster ein memofeld, einen timer und einen button. auf knopfdruck wird der timer gestartet und liest den text aus dem memofeld aus der eingetragen wurde und schreibt ihn per simulierter tastatureingabe neu:

Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: integer;
    c: Char;
begin
if length(memo1.Text)> 0 then
  begin
    for i:= 0 to length(memo1.Text) do
    begin
    c:= memo1.text[i];
      Case c of
        '1'..'9' :
          begin
          keybd_event(ord(c),0,0,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        'A'..'Z':
          begin
          keybd_event(vk_Shift,0,0,0);
          keybd_event(ord(c),0,0,0);
          keybd_event(vk_Shift,0,keyeventf_keyup,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        'a'..'z':
          begin
          c:= upcase(c);
          keybd_event(ord(c),0,0,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        else
        begin
        keybd_event(ord(c),0,0,0);
        keybd_event(ord(c),0,keyeventf_keyup,0);

        timer1.Enabled:=false;
        end;
      end;
            end;
                  end;
end;

end.
das funktioniert auch sehr gut, doch er erkennst keine sonderzeichen wie ? . ! ,
punkte und kommas und fragezeichen werden einfach übergangen bzw auch Ä wird zu 00...wie muss ich den code erweitern damit er punkt und komma bzw ö und ä richtig aus dem memofeld liest?

vielen dank!

rollstuhlfahrer 27. Jun 2010 06:31

AW: simulierte tastatureingabe aus memofeld
 
Microsoft bietet dafür sogenannte Virtual Keys. Die stehen für die einzelnen Tasten die gedrückt werden. Erst danach wandelt Windows die Tasten in Zeichen um. Die Zahlen und Großbuchstaben (als Kleinbuchstaben) haben zufälligerweise in ASCII und den Keycodes den gleichen Raum. Alles andere liegt wo anders. Die dazugehörigen Konstanten beginnen alle mit VK_

Bernhard

idefix2 27. Jun 2010 07:18

AW: simulierte tastatureingabe aus memofeld
 
http://www.codeproject.com/KB/system/keyboard.aspx

DeddyH 27. Jun 2010 09:42

AW: simulierte tastatureingabe aus memofeld
 
EnterText


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