我想对lanchat的程序中的编辑框发送字符串。我用spy++检查之后,发现它的编辑框是 TMemo,看来好像是Delphi做的。所以特来请教,这种编辑框如何向他发送字符串?::SendMessage(WM_CHAR...) 只能对非中文字符有效,发送中文就会失败,
所有的中文字符送过去之后,都变成十六进制值为FF 的字符 。请赐教,谢谢

解决方案 »

  1.   

    str:=edit1.Text;
    for i:=0 to length(edit1.Text)-1 do
    begin
      postmessage(hwnd,wm_char,integer(str[i]),0);
    end;
      

  2.   

    for (int i = 1; i <= SS_Text->Text.Length(); i++)
        {     // 模拟键盘按键输入文本
            PostMessage(hWnd, WM_CHAR, (WPARAM)(SS_Text->Text[i] & 0xFF), 0);
        }
    bcb得代码,注意他有个运算的
      

  3.   

    PostMessage(hWnd, WM_CHAR, (WPARAM)(SS_Text->Text[i] & 0xFF), 0);这样做恐怕也不行吧,对英文字符是没问题,中文字符就不好说了
      

  4.   

    procedure TForm1.Timer1Timer(Sender: TObject);
    var
      hwnd:integer;
      hwndthread:integer;
      hwndfocus:integer;
      i:integer;
      str:string[15];
    begin
      hwnd:=getforegroundwindow();
      hwndthread:=getwindowthreadprocessid(hwnd,nil);
      attachthreadinput(getcurrentthreadid(),
        hwndthread,true);
      hwnd:=getfocus;
       attachthreadinput(getcurrentthreadid(),
        hwndthread,false);
       str:=edit1.Text;//比如:你好啊
      for i:=0 to length(edit1.Text) do
        begin
          postmessage(hwnd,wm_char,integer(str[i]),0);
        end;
    end;
    师兄,我真的实现了啊!!发送的就是中文啊
      

  5.   

    另一个接受的窗口也是delphi写的,当处于焦点时,程序1就会插入程序2的线程,发送中文了!
      

  6.   

    还请兄台能否试一下我正在发愁对付的这个程序,下面这个连接就是。我用VC做的程序,用的也是函数SendMessage()。英文可以处理,中文就不行。我还是木或不解阿。所以请兄台试一下这个程序。http://www.regnow.com/softsell/visitor.cgi?affiliate=2314&action=site&vendor=3337&ref=http://lanchat.chat.ru/LCENT.EXE
      

  7.   

    SendMessage改为PostMessage,加入消息队列即可,没必要立即执行!for i:=1 to Lenght(Str) do
    begin
      PostMessage(Hwnd,WM_CHAR,Integer(Str[i]),0);
    end;或者
    SendMessage(Memo1.Handle,WM_SETTEXT,Integer(PChar(Str)),0);
      

  8.   

    many thanks, the problem has been resolved
      

  9.   

    关键问题,是需要  0xFF & nChar  ,我也很纳闷