Thema: Delphi PostMessage problem

Einzelnen Beitrag anzeigen

k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#1

PostMessage problem

  Alt 29. Jan 2008, 02:04
hey leute,

Normalerweise macht man doch damit EINEN tastendruck:
Delphi-Quellcode:
PostMessage(h, WM_KeyDown, $41, 0);
PostMessage(h, WM_KeyUp, $41, 0);
Doch komischerweise schickt er mir dann das "a" zweimal.

Ich hab mir die procedure von EnterText und umgeschrieben.
Und zwar so:

Delphi-Quellcode:
procedure SendText(AText: String);
var lCount, Ky : Integer;
    lScanCode : Smallint;
    h : HWND;
    lWithShift : Boolean;
begin
for lCount := 1 To Length(AText) Do
  begin
    lScanCode := VkKeyScan(AText[lCount]);
    lWithShift := lScanCode and (1 shl 8) <> 0;
   
    if lWithShift then
    PostMessage(Memo1.Handle, WM_KeyDown, VK_SHIFT, 0);

    PostMessage(Memo1.Handle, WM_KeyDown, lScanCode, 0);
    PostMessage(Memo1.Handle, WM_KeyUp, lScanCode, 0);

    if lWithShift then
    PostMessage(Memo1.Handle, WM_KeyUp, VK_SHIFT, 0);
  end;
end;
So sollte eigentlich funktionieren, also wenn der key ein grosses "A" ist das es dann auch ein grosses a macht.
Geht aber nicht da das KeyDown/KeyUp nicht wirklich geht.

Was ist daran dann falsch?
  Mit Zitat antworten Zitat