var cp: pchar;
begin
  cp := PChar(allocmem(2));
  cp := 'j';
  postMessage(Handle, WM_keydown, LongInt(cp), 0);
end;

解决方案 »

  1.   

    取地址好象不行
    你是用WINDOWS自带的计算器吧
    你可以用一个循环POSTMESSAGE
    把一个字符串送过去
    用ORD(str[i])
      

  2.   

    都说了不用wm_keydown用wm_char
      

  3.   

    procedure SendString(aHandle:HWND;const s:string);
    var
      i:integer;
    begin
      for i:=1 to length(s) do
        PostMessage(aHandle,WM_IME_CHAR,ord(s[i]),0);
    end;
      

  4.   

    wolaixue:如果发送汉字怎吗写?
      

  5.   

    SendString(Edit1.Handle,'我来学习');
      

  6.   

    wolaixue:这个函数在那里,找不着阿
      

  7.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;procedure SendString(aHandle:HWND;const s:string);var
      Form1: TForm1;implementation{$R *.dfm}procedure SendString(aHandle:HWND;const s:string);
    var
      i:integer;
    begin
      for i:=1 to length(s) do
        PostMessage(aHandle,WM_IME_CHAR,ord(s[i]),0);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      SendString(Edit1.Handle,'我来学习');
    end;end.我的系统是WINDOES ME,DELPHI 6,通过了啊!
      

  8.   

    WM_IME_CHAR改成WM_CHAR通过,谢谢