Autor Beitrag
nilsener1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 52

Win 98, XP
D4 prof.
BeitragVerfasst: Sa 14.01.06 16:43 
Hallo,

ich simuliere den Tastendruck mit dem folgenden code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
str(zahl:2:2,s);
for i:= 1 to length(s) do
 Begin
  wert1:=ord(s[i]);
  keybd_event(wert1,MapVirtualKey(wert1,0),0,0);
  keybd_event(wert1,MapVirtualKey(wert1,0),KEYEVENTF_KEYUP,0);
  sleep(100);
 end;


das Programm zerlegt eine Zahl in die einzelnen Ziffern und übergibt diese an die Tastatur, dabei unterschlägt es aber den Dezimalpunkt.
Beispiel: Zahl = 1.25, simuliert wird die Tastenfolge 125, d.h der Dezimalpunkt wird nicht richtig ausgeführt. In wert1 wird für den Dezimalpunkt 46 ermittelt, nach ASCII Tabelle ist das der richtige Wert.

ausblenden Delphi-Quelltext
1:
2:
keybd_event(ord('.'),MapVirtualKey(ord('.'),0),0,0);
keybd_event(ord('.'),MapVirtualKey(ord('.'),0),KEYEVENTF_KEYUP,0);


schreibt den Dezimalpunkt auch nicht.

Was mache ich falsch?

Gruss nilsener

Problem gelöst,

statt

ausblenden Delphi-Quelltext
1:
wert1:=ord(s[i]);					


muss es heissen

ausblenden Delphi-Quelltext
1:
wert1:=vkkeyscan(s[i]);					


Gruss nilsener

Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Sa 14.01.2006 um 17:32
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Sa 14.01.06 21:08 
Hallo,

machs mal so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
if wert1 = 46 then
  begin
  Keybd_Event($BE,0,0,0);
  Keybd_Event($BE,0,KEYEVENTF_KEYUP,0);
  end
  else
    begin
    keybd_event(wert1,MapVirtualKey(wert1,0),0,0);
    keybd_event(wert1,MapVirtualKey(wert1,0),KEYEVENTF_KEYUP,0);
    end;

Weitere Information dazu:
Virtual-Key Codes
Such da nach VK_OEM_PERIOD.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )