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_VIEWSOURCE= 2139;
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);
vHandle = FindWindowEx(vHandle, IntPtr.Zero, "Shell DocObject View", null);
vHandle = FindWindowEx(vHandle, IntPtr.Zero, "Internet Explorer_Server", null);
SendMessage(vHandle, WM_COMMAND, IDM_VIEWSOURCE, (int)Handle);
}
本文介绍如何使用C#中的PInvoke技术调用Windows API函数,通过具体实例演示了如何利用FindWindowEx和SendMessage函数来定位并操作WebBrowser控件中的Internet Explorer组件,以实现查看网页源代码的功能。

1万+

被折叠的 条评论
为什么被折叠?



