首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

[WinForm]axWebBrowser调用IE的添加到收藏夹对话框,该如何解决

2012-01-08 
[WinForm]axWebBrowser调用IE的添加到收藏夹对话框这是伴水的方法usingSystem.Runtime.InteropServices[D

[WinForm]axWebBrowser调用IE的添加到收藏夹对话框
这是伴水的方法
using   System.Runtime.InteropServices;
 
[DllImport( "User32.DLL ")]
public   static   extern   int   SendMessage(IntPtr   hWnd,   uint   Msg,   int   wParam,  
        int   lParam);
[DllImport( "User32.DLL ")]
public   static   extern   IntPtr   FindWindowEx(IntPtr   hwndParent,
        IntPtr   hwndChildAfter,   string   lpszClass,   string   lpszWindow);
public   int   IDM_ADDFAVORITES   =   2261;
public   uint   WM_COMMAND   =   0x0111;
 
private   void   Form1_Load(object   sender,   EventArgs   e)
{
        webBrowser1.Navigate( "http://blog.sina.com.cn/zswang ");
}
 
private   void   button1_Click(object   sender,   EventArgs   e)
{
        IntPtr   vHandle   =   webBrowser1.Handle;
 
        vHandle   =   FindWindowEx(vHandle,   IntPtr.Zero,   "Shell   Embedding ",   null);//我这里得到的是0
        vHandle   =   FindWindowEx(vHandle,   IntPtr.Zero,   "Shell   DocObject   View ",   null);//我这里得到的是0
        vHandle   =   FindWindowEx(vHandle,   IntPtr.Zero,   "Internet   Explorer_Server ",   null);//我这里得到的是0
        SendMessage(vHandle,   WM_COMMAND,   IDM_ADDFAVORITES,   (int)Handle);
}  

请麻烦解释下那3行代码的含义,就是那3个FindWindowEx

还有,就是我装的是IE7,会有区别不?

[解决办法]
怎么没人回答
先用 AxImp c:\windows\system32\shdocvw.dll
产生二个文件AxShdocvw.dll和shdocvw.dll

在项目中引用这二个DLL

在cs中引用:
using SHDocVw;

代码:
ShellUIHelper helper = new ShellUIHelper();
object t = webBrowser1.Document.Title;//我这里是vs2005的WebBrowser控件
helper.AddFavorite(webBrowser1.Url.ToString(), ref t);//调用添加到收藏夹对话框
object o = null;
helper.ShowBrowserUI( "OrganizeFavorites ", ref o);//调用整理收藏夹对话框

[解决办法]
关注,帮顶了
[解决办法]
模式窗口必须调用DoAddToFavDlg()
参照 http://blog.csdn.net/lzmtw/archive/2007/03/15/1530746.aspx
[解决办法]
mark
[解决办法]
JF...

热点排行