想做一个插件,当打开msn时,可以在线记录msn的聊天记录,请问如何实现呢?
一点头绪都没有,请高手指教,谢谢!

解决方案 »

  1.   

    用钩子获得上面那个RichEditBox的句柄,当内容改变,就将其内容保存
      

  2.   

    已经有这样的插件了
    MSNPlus
    你可以搜索看看它的主页
      

  3.   

    http://www.vckbase.com/code/downcode.asp?id=511是一个能获得其他程序的edit框的文本的代码.
      

  4.   

    在MSN 6 以后,对话框中已经不使EDIT控件了
    用Spy++看看,已经不对了。
    解决方法两种:
    MSN 提供了API 
    用法和COM一样,所以可以使用,我已经证实可以使用在5.0--6.0以上的版本
    但是好像不在提供下载了
    如果你用过VB,可以在引用中看到
    VC的方法类似
    再有就是需要钩子技术了,但是很复杂。
    As you may know, MSN Messenger before 5.0 (inclusive) uses a "RichEdit" common control as the chat input area and chat contents area, the "Send" button is a genuine "BUTTON" windows control. To interact with it, your program uses a hook or whatever remote injection ways to penetrate into MSN Messenger process space, and conduct button-pushing and text-reading just the same as doing this in a dialog-based GUI program we all have been writing. 
    But, in MSN Messenger 6.0, when you use SPY++ to check its windows layout, there is only a "DirectUIHWND" window. "DirectUIHWND" is a widely used wrapper windows class since the emergence of Windows XP, according to my observation. If you are using WinXP/2003, you can modify Mr. Keith Brown's tool CmdRunAs in Feb 2000, MSJ or Mr. Martyn 'Ginner' Brown's tool Start a Command As Any User in www.codeguru.com 2001, or if you are a lazy typist, use my GUI-based "RunAs" directly to launch SPY++ under "LocalSystem" account to your logon desktop(WinSta0\Winlogon).
    我也在开发这方面的东西,基本完成了功能,欢迎探讨
      

  5.   

    msn messenger6以上用了windowless richedit,
    他使用COM与text services object进行交互,所以,要得到数据就必须截获msn到text services object的函数调用.
    www.codeproject.com上有一篇介绍hook com interface的文章
    http://www.codeproject.com/com/cominterfacehookingpart.asp
      

  6.   

    下一个MSN helper,
    什么功能都有了(我这里有一个,可以传给你)
      

  7.   

    多谢各位的指点,我知道msn本身可以记录下聊天内容,但我还是希望自己能做一个类似插件的东东,对双方聊天内容做一些处理以后再显示出来。
    看来目前方法有两个,
    一是用msn提供的API,结合抓获句柄来实现
    二是用hook技术,具体如何实现还得查资料啊,还有谁可以补充得吗?没有得话,我就揭帖了。
    再次感谢!