怎样取FoxMail写邮件窗口中的邮件正文内容。(100分)

  • 主题发起人 主题发起人 lig
  • 开始时间 开始时间
L

lig

Unregistered / Unconfirmed
GUEST, unregistred user!
我自己也觉得这个题比较怪,但是没有办法,实际应用中遇到的。情况是这样的。<br>我需要为FOXMAIL做一个类似于插件的东西,其中有一步就是读取FOXMAIL写邮件<br>窗口的邮件正文内容(即那个编辑控件中的文本)。原本以为很简单就可以办到<br>,但是后来一试,却发现并不像我所想象的那样简单,这个编辑组件中的文本就<br>是读不出来。我不知道怎么做,请大家帮帮忙。以下代码就是不能成功读取编辑<br>器中文本内容的代码。<br><br>//EditText:array[0..255] of char;<br><br>function TForm1.FindFoxMailWindow: THandle;<br>var<br>&nbsp;FoxMailWindowHandle:THandle;<br>begin<br>&nbsp;FoxMailWindowHandle:=FindWindow('TF_compose',nil);//TF_compost为邮件编辑窗口的类名。<br>&nbsp;if FoxMailWindowHandle&lt;&gt;0 then<br>&nbsp; &nbsp;EnumChildWindows(FoxMailWindowHandle,@EnumChildWindowsProc,0);<br>&nbsp;Result:=FoxMailWindowHandle;<br>end;<br><br>function EnumChildWindowsProc(H:HWnd;lparam:longint):Boolean;stdcall;<br>var<br>&nbsp; Buffer: array[0..255] of Char;<br>begin<br>&nbsp; Result:=True;<br>&nbsp; GetClassName(h,buffer,255);<br>&nbsp; if (trim(StrPas(Buffer))='TZEditor') then//TZEditor即为那个编辑控件的类名。<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp;SendMessage(h,WM_GETTEXT,255,LongInt(@EditText));<br>&nbsp; &nbsp; &nbsp;Form1.RichEdit1.Lines.Add(EditText);<br>&nbsp; &nbsp; &nbsp;Result:=false;<br>&nbsp; &nbsp; end;<br>end;
 
TZEditor不是从Edit继承下来的,它是张小龙自己写的<br>估计是不支持wm_gettext消息。
 
关注!能否通过程序直接写上内容
 
我经常这么写,<br><br>function EnumChildWindowsProc(H:HWnd;lparam:longint):Boolean;stdcall;<br>var<br>&nbsp; s: string;<br>begin<br>&nbsp; Result:=True;<br>&nbsp; SetLength(s, 255);<br>&nbsp; GetClassName(h,PChar(s),255); <br>&nbsp; if Pos('TZEDITOR', UpperCase(s)) &gt; 0 then//TZEditor即为那个编辑控件的类名。<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp;SendMessage(h,WM_GETTEXT,255,LongInt(@EditText));<br>&nbsp; &nbsp; &nbsp;//我记得 edit 和其他不一样,好象不能用 WM_GETTEXT<br>&nbsp; &nbsp; &nbsp;// 用什么忘了。<br>&nbsp; &nbsp; &nbsp;Form1.RichEdit1.Lines.Add(EditText);<br>&nbsp; &nbsp; &nbsp;Result:=false;<br>&nbsp; &nbsp; end;<br>end;<br>
 
各位大侠继续发言啊!
 
Foxmail那个编辑框应该是自己写的,没看到输入HTTP或者FTP之类的就变色了吗?<br>在程序员大本营的光盘上有个EMAIL控件FreeNet的,它的编辑框就是自己写的,<br>先分析编辑框的内容,如果有HTTP或者FTP的话,就在那下面DRAW一条下划线的。
 
呵呵, richedit2.0 就可以,<br>EM_AUTOURL &nbsp;什么的, 给写字板发个消息看看?<br><br>to lig:<br>&nbsp; 还要什么?我这里没有 foxmail, 把你的问题说出来。
 
to 超级毛毛熊:<br>&nbsp; &nbsp; 其实是这样的,有人请我为FOXMAIL开发一个类似于插件的东西,主<br>要是实现给FOXMAIL通讯录中的联系人以各自的姓名发信,和使之支持<br>HTML格式邮件。做成插件是根本不可能了,因为FOXMAIL不支持插件,所<br>以只能开发一个外挂式的可执行程序来完成这些功能。现在主要的想法<br>是在程序启动判断FOXMAIL的写邮件窗口是否打开,如果打开则直接读取<br>FOXMAIL的发送邮件信息(包括收件人,和邮件正文等),然后在我的程<br>序中做处理后发出。其它的都好说,现在就是无法读出FOXMAIL写邮件窗<br>口中邮件正文的内容。初步估计FOXMAIL所用的这个语言本编辑组件(肯<br>定是张小龙自己写的)可能不是从EDIT继承下来的。我看过一些显示HEX<br>的DELPHI组件好像基类是TCUSTOMPANEL,所以怀疑,这个组件也是从<br>TCUSTOMPANEL所继承下来的,但是我对TPANEL的一些内部机制并不了解<br>,所以现在正在研究。如果您有兴趣的话也可以研究一下,毕竟就像我<br>在"我对回答不满意,如何回收分数?"中所说的那样,想不断的提高自<br>己才是大家上大富翁的主要原因吗(知道我是谁了吧!)。<br>
 
关注此问题!
 
其实我说的只是针对当前这个题目,也确实没有看 foxmail,<br>待我回去研究研究。
 
看了,应该不是从 edit 继承下来,搞得晕头转向,<br>我觉得至少应该从 Twincontrol,<br>再研究。
 
那你幹脆自己開發一個郵件程序,不必要作FOXMAIL的插件啊。<br>要不就自己做一個郵件界面,發送時把內容生成一個HTML文件,然後把<br>這處文件作爲一個附件用FOXMAIL發送不就在也。电脑之家的软件下载中<br>有几个类似于FOXMAIL插件的东东,你可以下载来看别人是怎么做的。
 
我终于回来了!<br>to honghs:<br>&nbsp; &nbsp; 我何常不想这样啊,但是要货的那一方不同意这样做。<br>to 大家:<br>&nbsp; &nbsp; 各位有何进展啊,前一段时间我不得不去搞了几天钩子,钩子完成了所以又得转回头来搞这<br>个,另外FOXMAIL好像支持DDE接口,但是我不知道其调用接口,问张小龙他又不给回信,可能是<br>FOXMAIL卖出之后为FOXMAIL提供支持技术的信箱已经不再用了吧。
 
我无能为力,不过真的不行的话,可以试一试采用屏幕取词的方法
 
电脑之家上有个可以用foxmail的地址薄的东东,在电子邮件类中。你可以试试像它那样作。
 
附加功能 &nbsp; 将问题提前 &nbsp; &nbsp;
 
我也很想知道<br>
 
最后一次提前
 
多人接受答案了。
 
后退
顶部