• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#调用winapi获取chrome浏览器中地址

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

//FindWindow 查找窗口
//FindWindowEx查找子窗口
//EnumWindows列举屏幕上的所有顶层窗口,如果回调函数成功则返回非零,失败则返回零
//GetWindowText返回窗口的标题

一、首先要先导入要使用到的win api

[DllImport("user32.dll")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("User32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
static extern int EnumWindows(EnumWindowsProc hWnd, IntPtr lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern int GetWindowText(IntPtr hWnd, StringBuilder lpText, int nCount);
[DllImport("user32.dll")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, StringBuilder lParam);

private const int WM_GETTEXT = 0x00D;
private static string _url;

 

//定义委托

delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);


static void Main(string[] args)
{ 
string url = GetWindowText();

 Console.WriteLine(url);
Console.ReadKey();

}

public static string GetWindowText()
{

IntPtr chrom = IntPtr.Zero;
EnumWindowsProc enwdproc = new EnumWindowsProc(FindChrom);

if (EnumWindows(enwdproc, IntPtr.Zero) >= 0)
return _url;
else
return null;
}

//回调函数
static bool FindChrom(IntPtr hWnd, IntPtr lParam)
{

var sb = new StringBuilder(256);
GetWindowText(hWnd, sb, sb.Capacity);

if (sb.ToString() != String.Empty)
{
if (hWnd != IntPtr.Zero)
{
IntPtr tb = FindWindowEx(hWnd, new IntPtr(0), "Chrome_OmniboxView", ""); //Chrome_OmniboxView是通过Spy++获得的

StringBuilder strbld = new StringBuilder(2083);
SendMessage(tb, WM_GETTEXT, 2083, strbld);
_url = strbld.ToString();
}
return false;

}
//回调函数有返回值

return true;

}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#中调用API发布时间:2022-07-13
下一篇:
C#域验证的代码发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap