首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用C#given hwnd获取Chrome,Firefox和IE中的当前URL

使用C#获取Chrome、Firefox和IE中的当前URL,可以通过以下方式实现:

  1. 获取Chrome中的当前URL:
    • 首先,需要引用System.DiagnosticsSystem.Runtime.InteropServices命名空间。
    • 使用Process.GetProcessesByName方法获取所有Chrome进程的进程对象数组。
    • 遍历进程对象数组,使用Process.MainWindowHandle属性获取Chrome窗口的句柄。
    • 使用GetWindowText函数和StringBuilder类获取Chrome窗口的标题。
    • 通过解析标题字符串,可以获取到当前URL。

示例代码:

代码语言:csharp
复制

using System.Diagnostics;

using System.Runtime.InteropServices;

using System.Text;

// 获取Chrome中的当前URL

public string GetChromeCurrentURL()

{

代码语言:txt
复制
   Process[] chromeProcesses = Process.GetProcessesByName("chrome");
代码语言:txt
复制
   foreach (Process process in chromeProcesses)
代码语言:txt
复制
   {
代码语言:txt
复制
       IntPtr handle = process.MainWindowHandle;
代码语言:txt
复制
       StringBuilder title = new StringBuilder(256);
代码语言:txt
复制
       GetWindowText(handle, title, title.Capacity);
代码语言:txt
复制
       string titleString = title.ToString();
代码语言:txt
复制
       if (titleString != "")
代码语言:txt
复制
       {
代码语言:txt
复制
           // 解析标题字符串,获取URL
代码语言:txt
复制
           // 示例代码省略
代码语言:txt
复制
           return currentURL;
代码语言:txt
复制
       }
代码语言:txt
复制
   }
代码语言:txt
复制
   return null;

}

// 调用Windows API函数获取窗口标题

DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)

private static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

代码语言:txt
复制
  1. 获取Firefox中的当前URL:
    • 首先,需要引用System.IOMicrosoft.Win32命名空间。
    • 使用RegistryKey类读取Firefox的安装路径。
    • 使用Process.Start方法启动Firefox,并通过命令行参数-osint -url "%u"打开一个新标签页。
    • 使用Process.WaitForInputIdle方法等待Firefox进程就绪。
    • 使用SendKeys类发送快捷键Ctrl+LCtrl+C,将当前URL复制到剪贴板。
    • 使用Clipboard类获取剪贴板中的文本,即为当前URL。

示例代码:

代码语言:csharp
复制

using System.IO;

using Microsoft.Win32;

using System.Diagnostics;

using System.Windows.Forms;

// 获取Firefox中的当前URL

public string GetFirefoxCurrentURL()

{

代码语言:txt
复制
   string firefoxPath = GetFirefoxInstallationPath();
代码语言:txt
复制
   if (firefoxPath != null)
代码语言:txt
复制
   {
代码语言:txt
复制
       Process process = new Process();
代码语言:txt
复制
       process.StartInfo.FileName = firefoxPath;
代码语言:txt
复制
       process.StartInfo.Arguments = "-osint -url \"%u\"";
代码语言:txt
复制
       process.Start();
代码语言:txt
复制
       process.WaitForInputIdle();
代码语言:txt
复制
       SendKeys.SendWait("^l");
代码语言:txt
复制
       SendKeys.SendWait("^c");
代码语言:txt
复制
       process.WaitForExit();
代码语言:txt
复制
       string currentURL = Clipboard.GetText();
代码语言:txt
复制
       return currentURL;
代码语言:txt
复制
   }
代码语言:txt
复制
   return null;

}

// 获取Firefox的安装路径

private string GetFirefoxInstallationPath()

{

代码语言:txt
复制
   string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
代码语言:txt
复制
   using (RegistryKey key = Registry.LocalMachine.OpenSubKey(uninstallKey))
代码语言:txt
复制
   {
代码语言:txt
复制
       foreach (string subKeyName in key.GetSubKeyNames())
代码语言:txt
复制
       {
代码语言:txt
复制
           using (RegistryKey subKey = key.OpenSubKey(subKeyName))
代码语言:txt
复制
           {
代码语言:txt
复制
               string displayName = subKey.GetValue("DisplayName") as string;
代码语言:txt
复制
               if (displayName != null && displayName.Contains("Firefox"))
代码语言:txt
复制
               {
代码语言:txt
复制
                   string installLocation = subKey.GetValue("InstallLocation") as string;
代码语言:txt
复制
                   if (installLocation != null)
代码语言:txt
复制
                   {
代码语言:txt
复制
                       string firefoxPath = Path.Combine(installLocation, "firefox.exe");
代码语言:txt
复制
                       if (File.Exists(firefoxPath))
代码语言:txt
复制
                       {
代码语言:txt
复制
                           return firefoxPath;
代码语言:txt
复制
                       }
代码语言:txt
复制
                   }
代码语言:txt
复制
               }
代码语言:txt
复制
           }
代码语言:txt
复制
       }
代码语言:txt
复制
   }
代码语言:txt
复制
   return null;

}

代码语言:txt
复制
  1. 获取IE中的当前URL:
    • 首先,需要引用System.Runtime.InteropServices命名空间。
    • 使用SHDocVw.ShellWindows类获取所有正在运行的IE窗口对象。
    • 遍历IE窗口对象,使用InternetExplorer接口的HWND属性获取IE窗口的句柄。
    • 使用GetWindowText函数和StringBuilder类获取IE窗口的标题。
    • 通过解析标题字符串,可以获取到当前URL。

示例代码:

代码语言:csharp
复制

using System.Runtime.InteropServices;

using System.Text;

// 获取IE中的当前URL

public string GetIECurrentURL()

{

代码语言:txt
复制
   ShellWindows shellWindows = new ShellWindows();
代码语言:txt
复制
   foreach (InternetExplorer window in shellWindows)
代码语言:txt
复制
   {
代码语言:txt
复制
       IntPtr handle = (IntPtr)window.HWND;
代码语言:txt
复制
       StringBuilder title = new StringBuilder(256);
代码语言:txt
复制
       GetWindowText(handle, title, title.Capacity);
代码语言:txt
复制
       string titleString = title.ToString();
代码语言:txt
复制
       if (titleString != "")
代码语言:txt
复制
       {
代码语言:txt
复制
           // 解析标题字符串,获取URL
代码语言:txt
复制
           // 示例代码省略
代码语言:txt
复制
           return currentURL;
代码语言:txt
复制
       }
代码语言:txt
复制
   }
代码语言:txt
复制
   return null;

}

// 调用Windows API函数获取窗口标题

DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)

private static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

代码语言:txt
复制

以上是使用C#获取Chrome、Firefox和IE中的当前URL的方法。请注意,由于浏览器的版本和配置可能会有所不同,以上代码可能需要根据实际情况进行适当的调整和优化。

相关搜索:在IE和Chrome上使用javascript打开当前窗口中带参数的url失败如何在Chrome/IE和Firefox中修复Joomla站点的编号位置问题IE中的ContextMenu,以获取当前打开的浏览器url在Chrome和Firefox中的导航栏样式可以,但在IE中我有问题表格单元格和边框在IE/Chrome和Firefox/Opera中的显示方式不同在IE、Chrome和safari的Firefox..Works中输入不提交数据的密钥在Chrome和Firefox中可以预先添加/追加,但不能在IE11和Edge中使用类定义在IE中崩溃,但在Firefox、Chrome和Opera中有效。IE的类定义中是否有任何错误?使用C++ MFC,获取添加到浏览器(Chrome、IE或Firefox)的扩展列表使用jQuery在Chrome和IE中设置body元素的onbeforeunload使用css重置元素在Chrome和Firefox中的不同位置在不使用selenium和chrome的URL中嵌入凭据"onpopstate“事件的解决方案,该事件在chrome中不起作用,但在IE和FireFox中工作正常Vuejs -如何使用axios获取api的url中的当前id在android WebView中页面加载完成后如何获取和使用当前的url我应该使用什么 CSS 来为 Firefox 和 IE 中的选项标签设置边框?从数据库中检索到的ASP.net图像不会在Chrome和Firefox中显示,但IE和Edge除外IE和chrome中的对齐方式不同(使用多个<div>将居中和水平对齐)无法在IE中加载CSV数据,但使用D3在我的SharePoint站点中加载了Chrome、Firefox和Edge使用python和bs4获取url中的短语计数
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Firefox支持ActiveX控件「建议收藏」

答:两种方案:一种是使用IETab这个插件,在Firefox下直接调用IE浏览器内核进行浏览;   另一种是使用npActivexPlugin,让Firefox直接支持ActiveX。...答:两种方案:一种是使用IETab这个插件,在Firefox下直接调用IE浏览器内核进行浏览;   另一种是使用npActivexPlugin,让Firefox直接支持ActiveX。...firefoxxpi实际上类似于IE插件或扩展(如Flash插件等). 格式一般为.Zip, 由XUL、Javascript、CSS、HTML图片等构成....在Chrome中键入about:plugins,可以查看当前Chrome具有的插件信息。。。NPAPI是一个很经典插件方案,用dll进行注入,用协定API进行通信,用字符串描述插件能力。...在Render进程,解决这个问题思路是控制权限,不然Render创建HWND,到了Plugin,这招不能使用,只能够使用另一招,就是监管。

3.8K10
  • Document.Referrer丢失几个原因

    在Javascript,我们可以通过document.referrer来获取同样信息。通过这个信息,我们就可以知道访客是从什么渠道来到当前页面的。...IE5.5+ 下返回空字符串 Chrome3.0+,Firefox3.5,Opera9.6,Safari3.2.2均正常返回来源网页 window.open方式打开新窗口 示例: <a href=...javascript:alert(document.referrer) 测试结果: IE5.5+ 下返回空字符串 Chrome3.0+,Firefox3.5,Opera9.6,Safari3.2.2...IE下,通过客户端Javascriptdocument.referrer读取到值是空,但是如果你使用流量监控软件看一下的话,你会发现,实际上HTTP请求Referer报文头却是有值,这可能是...Chrome3.0Safari3.2是一样,都是会丢失Referrer信息。 Opera则Firefox一样,Referrer值都是来源网页地址。

    4.1K20

    软件安全性测试(连载4)

    这样一些不允许出现名单就可以被排除了,比如“等”。另外在富文本尽可能地少使用自定义CSS或Style。 3)测试技巧 下面来介绍几个XSS注入测试技巧。...扩展阅读:URL参数长度 l浏览器端。 Ø     IE浏览器对URL最大限制为2,083个字符。 Ø     Firefox浏览器URL长度官方限制为65,536个字符。...,执行这个网页,在同一页面地址栏键入javascript:eval(name),即可获取cookie信息 ③绕过前端检查 如下面的网页。...④获取当前浏览器及版本 以下是一段比较复杂JS脚本,通过它可以获得当前浏览器及版本。...) document.write('Firefox:' + Sys.firefox); if (Sys.chrome) document.write('Chrome: '+ Sys.chrome

    53920

    ​Java自动化测试 (元素定位 23)

    基础定位方式 id 根据id来获取元素,id唯一性 name 根据元素name熟悉来获取元素,会存在不唯一情况 tagName 根据元素标签名来获取元素,一般不建议使用 className 根据元素样式名来获取元素...,会存在不唯一性,注意复合类名问题 linkText 根据超链接全部文本值来获取元素 partialLinkText 根据超链接部分文本值来获取元素(模糊匹配) 代码封装 之后例子都会使用到open...Xpath定位 Xpath定位有很多优势 没有id可以进行定位 需要定位多个符合要求元素 使用脚本断点调试定位是否正确是一个方法,当时在我实际工作,元素定位代码封装较深,所以修改查询元素内容较麻烦...下面是使用方法: 元素定位 使用浏览器自带定位工具进行元素定位 ? 元素定位 初步获取Xpath ?...ancestor:选择当前节点所有祖先节点 parent:选取当前节点父节点 preceding:选取当前节点之前所有节点 preceding-sibling:选取当前节点之前所有兄弟节点 following

    1.1K30

    62款前端数据可视化插件大盘点

    IE6+、chrome、safari、firefox、opear resume:chartkick是一个依赖于ruby绘制图表js库,在Python也可以使用 ?...6+,iosandriod设备 resume:使用内嵌在HTML数据或通过javascript直接生成微线图(小内联图表),最主要特点是可以生成波形图。...:Internet Explorer 7+,chromeFirefox resume:Gregor Aisch开发一个基于JavaScriptPython非常炫、完全使用矢量库。.../arbor browser:IE6+,chrome,firefox resume:基于jQuery图谱可视化库,对于高版本浏览器这个库使用了HTMLcanvas元素 ?...:Springy是一个使用JavaScirpt实现有向图布局算法,使用了真实世界一些物理原理,你可以随意拖动图表元素。

    24.4K101

    爬虫系列-User-Agent(用户代理)是什么以及如何构建User-Agnet代理池

    注意:httpbin.org [3]这个网站能测试 HTTP 请求和响应各种信息,比如 cookie、IP、headers 登录验证等,且支持 GET、POST 等多种方法,对 Web 开发测试很有帮助...与 headers url = 'http://httpbin.org/get' #向测试网站发送请求 #重构请求头,伪装成 Mac火狐浏览器访问,可以使用上表任意浏览器UA信息 headers...模块随机获取UA 您也可以使用专门第三方模块来随机获取浏览器 UA 信息,不过该模块需要单独安装,安装方式如下: pip install fake-useragent 下载安装成功后,演示如下代码:...from fake_useragent import UserAgent #实例化一个对象 ua=UserAgent() #随机获取一个ie浏览器ua print(ua.ie) print(ua.ie)...#随机获取一个火狐浏览器ua print(ua.firefox) print(ua.firefox) 输出结果: #随机获取ieua信息 Mozilla/5.0 (compatible; MSIE

    2.9K61

    复制黏贴上传图片跨浏览器自动化测试

    Note: 支持 IE 11, 以及现代浏览器Chrome, Firefox, Safari 现代浏览器在 paste 事件中提供 clipboardData 属性来访问粘贴板数据 获取粘贴板图片数据可以通过监听...Experiences in IE11 IE 11 需要使用 hack 方法来获取粘贴板图片数据 hack 实例可以去 这里 看下, 要使用 IE 11 浏览器哦, 目前能找到在线编辑器支持...paste 事件, 从 image 标签获取数据 * 目前支持浏览器只有 IE 11 不支持标准 paste 事件 * IE 11 粘贴图片格式为 [data url](https...最明显一个问题是透明通道丢失了, 初以为是 IE 11 在读取时候做了处理, 后来发现 Firefox 也是如此, 并且同一张图片, 在 IE11 Firefox 结果一致, 所以做出了以下猜测...chrome 调用了不同接口, 或者是自己实现了接口 所以最后只针对 chrome 做了 bitmap 对比, 而在 IE11 Firefox 上则只判断接收到了一张 png 图片 expect

    1.3K10

    chrome插件开发教程

    这是一个开发者最喜欢Firefox扩展Firebug精简版。 JQuery 扩展 jQuery扩展让你在当前网页运行JavaScriptjQuery命令。...其整合了BeautifierPrettify功能,可以为代码添加语法高亮。用法是在新窗口里输入js文件URL或者在查看HMTL源代码时点击js文件链接。...如果是在Chrome控制台里资源选项里查看代码则推荐使用Chrome自带"pretty print"功能,也就是点击"{ }"图标。...WhatFont 用于查看当前页面使用了哪些字体,FirebugWebkit Inspector也可以查看字体,但是远没有WebFont方便,WebFont可以通过把鼠标悬停在元素上来查看字体。...IE Tab 在Chrome打开IE浏览器标签页,你可以打开一个标签来运行Internet Explorer,让你看到网页在IE浏览器看起来如何。

    1.7K30

    『Go 语言学习专栏』-- 第十五期

    后端人员,可以写库,虽然在真实用户交互层面,后端工程师开发工具大概只能在程序员内使用,或者有一定编程基础的人才能使用。 尽管不是每个人写工具都能得到广泛认可、使用。...随着关注点越来越精细,我倾向于从我熟悉东西入手,什么意思,为什么从熟悉东西入手,因为我越来越发现,自信心是很重要,如果你不能第一时间对一个项目提起兴趣自信心,你可能没什么机会这个项目产生化学反应...只选择这几个浏览器理由是? https://www.w3schools.com/browsers/default.asp image.png 可以查看当前最主流浏览器一些数据。...好了,你也了解了这个库核心代码思想。 你下一步怎么做? 重新实现。 你可以选择 Python 实现,但是在你看源代码过程,你思维应该已经受这个库具体处理方式影响了。.../Msie/InternetExplorer 返回IE 浏览器UserAgent FF/FireFox 返回 FireFox 浏览器UserAgent Google/Chrome 返回 Chrome 浏览器

    73640

    通过边缘函数实现自适应图片格式转换

    本文介绍了如何在不修改原始客户端请求 URL 情况下,通过边缘函数根据客户端请求携带User-Agent头部自动判断需返回图片文件格式,自动触发图片格式转换。...例如:当用户使用 Chrome、Opera、Firefox、Edge 浏览器访问图片时,响应 webp 格式图片。用户使用 Safari 浏览器访问图片时,响应 jp2 格式图片。...从而帮助您在不需要更改业务逻辑情况下,自适应地为用户提供最佳格式图片,减少流量消耗。如果您希望在请求 URL 主动控制触发图片格式转换,也可以参考使用 图片处理 能力。...以下为该场景示例代码:// 浏览器使用图片格式const broswerFormat = { Chrome: 'webp', Opera: 'webp', Firefox: 'webp', Safari...在函数触发规则,配置该函数触发条件,根据当前场景需求,您可以配置两条触发条件,以 And 逻辑触发。该请求 HOST 等于 Image.example.com。

    10110

    Java自动化测试(selenium 22)

    selenium IDE selenium IDE是一个Firefox/Chrome插件,用于记录回放用户与浏览器交互。使用它来创建简单脚本或协助进行探索性测试。...使用 IE 浏览器进行 Web 自动化测试,selenium-java.jar 包 IE 驱动是同步(如下图),所以只需要关注 IE 驱动 IE 浏览器版本如何搭配。...如果你使用 ie6、ie7 请使用 selenium 2.42 或者 2.40 版本,也就是图中版本。如果你使用 ie8-ie11 推荐使用 2.50 之后版本。...下载 Chrome 使用 Chrome 浏览器进行 Web 自动化测试,selenium-java.jar 是通用,只需要关注 Chrome 驱动 Chrome 浏览器版本是否对应即可。...镜像地址:https://npm.taobao.org/mirrors/chromedriver/ Firefox 使用 Firefox 浏览器进行 Web 自动化测试,相对于 IE Chrome

    1.2K30

    《手把手教你》系列基础篇之(三)-java+ selenium自动化测试- 启动三大浏览器(上)(详细教程)

    1.简介 前边宏哥已经将环境搭建好了,今天就在Java项目搭建环境简单地实践一下: 启动三大浏览器。按市场份额来说,全球前三大浏览器是:IE.Firefox.Chrome。...注意:一个大chromedriver版本里面可能包含有多个小版本,如果下载Chromedriver版本当前使用chrome浏览器版本不匹配则可以换其他试试。...4.启动Firefox浏览器 4.1Firefox驱动下载地址 selenium2.X最高支持Firefox版本为46,使用selenium2.X的话不需要下载火狐驱动,只需要配置火狐启动路径即可...具体浏览器浏览器驱动之间对应关系可在geckodriver下载网站版本说明查看。...driver.quit(); } } 5.启动IE浏览器 5.1IE浏览器驱动下载地址 本人使用IEIEDriverServer: IE浏览器版本:11 IEDriverServer

    2K20

    CSS3文本与字体

    URL 地址内部进行换行 */ 兼容性:IE5.5+、FireFox3.5+、Chrome23+、Safari6.1+、Opera12.1+ 二、CSS3 新文本属性 1、text-align-last...ellipsis / string; /* clip:修剪文本 ellipsis:显示省略符号“…”来代表被修剪文本 string:使用给定字符串来代表被修剪文本 */ 兼容性:IE6.0+、...style:定义字体样式,如斜体 */ 兼容性:IE9+、FireFox3.5+、Chrome4+、Safari3.2+、Opera10+ 2、CSS3 @font-face字体格式 TureTpe...(.ttf)(WindowsMac最常见字体,是一种RAW格式,因此不为网站优化) 兼容性:IE9+、FireFox3.5+、Chrome4+、Safari3+、Opera10+、IOS Mobile...,同时也支持元数据包分离) 兼容性:IE9+、FireFox3.5+、Chrome6+、Safari3.6+、Opera11.1+ Embedded Open Type (.eot)(IE专用字体

    1.3K30
    领券