为何我对WORD,Outlook Express和IE输入框发送WM_PASTE消息不行?

XiaoDi_Liu 2003-12-01 12:33:14
用SPY看了Outlook Express 新建邮件的Class是Internet Explorer_Server.

如果才能实现将当前剪贴板中的内容复制到Word,OE 等当前输入光标位置.谢谢!

同样的代码可以对记事本实现,对IE的地址栏也可以.对Foxmail也可以.

谢谢!
...全文
63 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nightfallrove 2003-12-29
  • 打赏
  • 举报
回复
有牛人在我不发言了,
UP一下,
蒋晟 2003-12-29
  • 打赏
  • 举报
回复
那些窗口很可能不是Edit,所以不支持WM_PASTE
你可以用COM的方法输入
如何把word菜单融入到应用程序中
怎么用VC修改任意网页中text文本框的值
checkyvc6 2003-12-29
  • 打赏
  • 举报
回复
SendMessage(hWnd,WM_PASTE,..)应该可以的啊
你是不是窗口句柄没有找对啊
fadics 2003-12-29
  • 打赏
  • 举报
回复
访问Internet Explorer_Server的接口,好像是叫IDispathHtml2
checkyvc6 2003-12-01
  • 打赏
  • 举报
回复
找到对应窗口的句柄(findWindow,FindWindowEx,和EnumWindows都可以
然后SendMessage(hWnd,WM_PASTE,..)即可
XiaoDi_Liu 2003-12-01
  • 打赏
  • 举报
回复
不行的.我是得到了HWND了(其值与用SPY++所看相同).给他发WM_PASTE不行.
作者: 三角猫 出处: http://www.zu14.cn/ 版权归 三角猫 和 真有意思网 所有,转载请注明出处 using System; using System.Collections.Generic; using System.Text; namespace QQAutoMsg { /// /// 消息发送 /// internal static class QQMsgSender { /// /// 发送消息 /// /// 所以已打开的QQ窗体的列表 /// 消息内容 internal static void Go(List qqChatWindows, string msg) { foreach (EnumQQChatWindows.QQChatWindow win in qqChatWindows) { SendMsg(win.WindowHwnd, msg); } } /// /// 根据窗体句柄,找到输入框发送按钮,发送消息出去 /// /// 聊天窗口句柄 /// 消息内容 private static void SendMsg(IntPtr hWnd, string msg) { if (NativeMethods.IsWindow(hWnd)) //确认该聊天窗口仍然有效 { ////找到 发送 按钮 IntPtr hwndButton = NativeMethods.FindWindowEx(hWnd, IntPtr.Zero, "Button", "发送(S)"); if (IntPtr.Zero != hwndButton) { ////找到窗体顺序上的第一个RichEdit20A控件,其实就是消息显示框 IntPtr hwndRichEdit = NativeMethods.FindWindowEx(hWnd, IntPtr.Zero, "RichEdit20A", null); ////利用spy++,可以看到消息输入框的父窗体是类名为 AfxWnd42 的控件 ////在顺序上是显示框的下一个窗体 if (IntPtr.Zero != hwndRichEdit) { ////找到 AfxWnd42 这个窗体 hwndRichEdit = NativeMethods.GetWindow(hwndRichEdit, NativeMethods.GW_HWNDNEXT); if (IntPtr.Zero != hwndRichEdit) { ////这才是真正的消息输入框 hwndRichEdit = NativeMethods.FindWindowEx(hwndRichEdit, IntPtr.Zero, "RichEdit20A", null); if (hwndRichEdit != IntPtr.Zero) { ////发送消息,因为QQ屏蔽了 WM_SETTEXT, WM_PASTE 命令,所有采用 EM_REPLACESEL 来实现 NativeMethods.SendMessage(hwndRichEdit, NativeMethods.EM_REPLACESEL, IntPtr.Zero, msg); ////给发送按钮发 鼠标单击消息 NativeMethods.SendMessage(hwndButton, NativeMethods.BM_CLICK, IntPtr.Zero, IntPtr.Zero); } } } } } } } }

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧