我已经在谷歌搜索过URL开放事件很长一段时间了,但Google只是给了我不恰当的结果......
实际上,我想知道当应用程序打开外部URL时会发生什么。
例如,当有人通过Skype向您发送链接时,您单击该链接,Skype将提示您进入IE / Chrome或其他默认浏览器。我想知道如何捕获打开浏览器的事件。我不想将我的应用程序设置为默认浏览器。
VB.net可能有一个有限的功能,如果没有办法实现这一点,可以给我一个如何在C#或c ++中实现它的方法。我完全不知道如何做到这一点。希望有人能给我一个提示:(
添加: 也许我的问题不明确。我需要做的是不打开URL。 我想创建一个应用程序来通过我的应用程序打开一个URL。例如,当我点击Skype上的链接时。我希望我的应用程序获取Skype试图打开的链接而不是将我带到浏览器。
答案 0 :(得分:3)
从评论中看来真正的问题是"我如何让我的应用程序处理URL调用而不是注册的应用程序"?
您可以通过注册自己的protocol handler来实现。 Windows通过在...注册表中注册的协议处理程序处理URI。每次在Run
框中输入URL或由Process.Start
启动时,操作系统都会检查注册表以查找为URI协议注册的程序。操作系统将只运行注册过程,将URL作为参数传递
您可以替换http
处理程序,但您应该非常小心,否则可能会给最终用户带来严重问题
当然,如果您要拦截网址来电的原因是提供您自己的前缀(例如git:
),那么您不必担心任何此类问题。