function EnumChildWindowsProc(H: HWnd; lparam: longint): Boolean; stdcall;
  var
    s: string;
    EditText: array[0..255] of char;
  begin
    Result := True;
    SetLength(s, 255);
    GetClassName(h, PChar(s), 255);
    if Pos('TZEDITOR', UpperCase(s)) > 0 then //TZEditor即为那个编辑控件的类名。
    begin
      SendMessage(h, WM_GETTEXT, 255, LongInt(@EditText));
     //我记得 edit 和其他不一样,好象不能用 WM_GETTEXT
     // 用什么忘了。
      Form1.RichEdit1.Lines.Add(EditText);
      Result := false;
    end;
  end;
  function FindFoxMailWindow: THandle;
  var
    FoxMailWindowHandle: THandle;
  begin
    FoxMailWindowHandle := FindWindow('TF_compose', nil); //TF_compost为邮件编辑窗口的类名。
    if FoxMailWindowHandle <> 0 then
    begin
      EnumChildWindows(FoxMailWindowHandle, @EnumChildWindowsProc, 0);
    end;
    Result := FoxMailWindowHandle;
  end;begin
  FindFoxMailWindow;
end;好像对TZEDITOR属性无法使用SendMessage
请各位帮忙!

解决方案 »

  1.   

    TZEDITOR 確定是編輯器組件不
      

  2.   

    Foxmail那个编辑框应该是自己写的,输入HTTP或者FTP之类的就变色了
      

  3.   

    delphibbs之前好像也有人問過, 你全文檢索看看.
      

  4.   

    试了一下,还真是挺奇怪的。虽然用windowfrompoin能够获得TZEDITOR有句柄,但它好像又不是一个窗口。你可以用SPY++试试,根本找不到这个窗口。这是foxmail的问题了。^_^
      

  5.   

    可以看到foxmail主界面的各个窗口都可以找到。但写邮件的ZEDITOR却找不到,也许是foxmail的安全机制吧。关注有无高手解决了.......