![]() |
PostMessage und Konstanten
Hallo, Ich schreibe gerade an einer Dll, mit der man bequem Tasten senden kann.
Standart muss man ja die Hexzahlen eingeben ($41 für A usw.). Das gefällt mir aber nicht. Ich will einfach nur A eingeben. Deswegen habe ich zu jedem Buchstaben Konstanten gesetzt
Delphi-Quellcode:
Nun will ich einen text per PostMessage senden.
{===============================================================================
Autor: Markus S. @ General Desert DLL Version: 1.0.0 Funktionen: - GetHandle - INIRead - INIWrite - SendText - MouseClick - MemoryRead - MemoryWrite - TimeDiff - Shutdown - RecordMouse ==============================================================================} library Main; uses SysUtils, Windows, Messages, Classes, inifiles; const A = $41; B = $42; C = $43; D = $44; E = $45; F = $46; G = $47; H = $48; I = $49; J = $4A; K = $4B; L = $4C; M = $4D; N = $4E; O = $4F; P = $50; Q = $51; R = $52; S = $53; T = $54; U = $55; V = $56; W = $57; X = $58; Y = $59; Z = $59; ENTER = $0D; SPACE = $20; SHIFT = $10; LBUTTON = $01; RBUTTON = $02;
Delphi-Quellcode:
Nur das ganze geht nicht. Also es sollte später mal so aussehen
Procedure TUser.SendText(Handle: HWnd; Text: PChar; var Delay: longInt); stdcall;
var i: Integer; Zeichenlaenge: Integer; Save: TMaxLength; begin Zeichenlaenge := Length(Text); for i := 1 to Zeichenlaenge do begin Save[i] := Text[i]; //Taste senden PostMessage(Handle, WM_KEYDOWN, Save[i], 0);
Delphi-Quellcode:
Danke ;)
Postmessage(Handle, WM_KEYDOWN, A, 0); //Sendet die taste A
|
Re: PostMessage und Konstanten
Was heißt "geht nicht" ?
|
Re: PostMessage und Konstanten
Integer und PChar sind inkompitable
|
Re: PostMessage und Konstanten
Moin auch :hi:
Delphi-Quellcode:
Das sollte so funktionieren. Stimmt der Scan-Code?
Postmessage(Handle, WM_KEYDOWN, A, 0); //Sendet die taste A
Wichtig dabei ist, dass zum WM_KEYDOWN auch ein WM_KEYUP gesendet wird. Die Taste muss ja auch wieder losgelassen werden. In der oberen Geschichte könnte man das so lösen:
Delphi-Quellcode:
Ist nur so eine Idee.
var lCode : Word;
case Text[i] of //Ord('a') ist klarer zu lesen als die passende Zahl 'a'..'z' : lCode := Ord(Text[i]) - Ord('a') + $41; else lCode := 0; end; if lCode > 0 then begin //Taste senden PostMessage(Handle, WM_KEYDOWN, lCode, 0); PostMessage(Handle, WM_KEYUP, lCode, 0); end; Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 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