问题标签 [pluggableprotocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
302 浏览

installation - 是否可以注册异步可插入协议用户特定注册表?

有关异步可插拔协议,请参阅http://msdn.microsoft.com/en-us/library/aa767916(VS.85).aspx

我们目前可以使用它,但是它需要我们写入 HKey_Class_Root。为了尝试允许非管理员安装,如果我们可以通过写入 HKey_Current_User 来实现相同的目标,那就太好了。简单地更改注册表位置似乎不起作用,我想知道是否有可能

0 投票
1 回答
257 浏览

internet-explorer - 如果我们有多个用于同一模式的临时异步可插拔协议,谁会赢?

假设我们有不止一个用于模式的临时异步可插入协议让我们说 ftp:那么 urlmon 将调用哪一个?

0 投票
3 回答
524 浏览

http - Firefox 的 Http Passthrough 可插拔协议

如何使 IE 的 http 直通可插拔协议在 Firefox 中工作?

或者,如何为 Firefox 开发一个?任何示例将不胜感激。

谢谢。

0 投票
1 回答
658 浏览

internet-explorer - 使用异步可插入协议在 IE 中显示文件

我为 Internet Explorer 创建了一个异步可插拔协议:

ex://D:/sample.html(假设“ex”是我创建的协议)

在 IE 本身中打开文件 D:/sample.html 文件

以下是问题:

  1. 它能够呈现 html 和 jpeg(尚未检查其他图像文件格式)文件。但是对于其他文件格式(例如 .doc、.pdf、.swf 等),它会显示错误“导航到网页已取消”。根据我正在记录处理阶段的日志,整个处理过程类似这些文件格式如 html 等。

  2. 在 IE 中打开一个文件后,该文件在 IE 中使用为系统中文件格式注册的默认应用程序打开。例如:在 adobe reader 是注册为 pdf 文件格式的默认应用程序的系统中,在 adobe reader 中打开 pdf 文件。那么有什么方法可以在显示文档时以编程方式控制该默认应用程序的 UI 控件(例如保存、打印等)。

任何指针都会有所帮助。谢谢。

0 投票
1 回答
166 浏览

internet-explorer - 在可插入协议处理程序中启用会话 cookie

我们已经实现了我们自己的异步可插入协议处理程序,我们使用它来将 HTML 文档从我们自己的文档存储加载到 Internet Explorer。我们需要能够document.cookie使用我们的 APP 加载到浏览器中的文档来存储和检索会话 cookie。

但是,当我们设置document.cookie然后检查该值时,它总是设置为一个空字符串。我想我们需要实现一些额外的接口,但我没有找到任何可能表明我们缺少什么的信息。

0 投票
1 回答
221 浏览

internet-explorer - 可插入协议处理程序中的 IE 和 quirks 模式

我有以下问题:

可插入协议处理程序提供 HTML 文件。

这些文件没有正确的doctype- 文档类型完全丢失。我无法更改,文件来自第三方。

所以我想使用“ X-UA-Compatible: IE=edge”标题来设置文档类型。当我从真正的网络服务器执行此操作时,它按预期工作。当我通过协议处理程序执行此操作时,IHttpNegotiate::OnResponse它不起作用。

我已经尝试添加更多的标题,例如“ Content-Type”,当然还有“ HTTP/1.1 200 OK”,直到我报告从真正的网络浏览器收到的所有标题 - IE 仍然将其设置documentMode为 5。

有人对此有一些想法吗?

这是我正在尝试的:

整个代码可以在github上找到。

干杯
想象

0 投票
2 回答
939 浏览

c# - C#从不同的Url打开相同的应用程序并传递参数

我的申请步骤是:

  1. 先进入设置页面,设置页面会在后台注册Registry Log(命令行中为'regedit')(一般人很少会进入设置页面)。
  2. 当用户单击网页中的 URL 时,它将触发注册表并打开我的应用程序。
  3. 应用程序读取它获取的参数并根据参数值执行操作。
  4. 用户可以点击不同的链接向我的应用程序发送不同的参数
  5. 也就是说,如果应用程序没有打开,应该启动它并读取参数。如果应用程序已经打开,它应该只读取参数。

问题是:如何找出我的应用程序的不同情况-是否打开-然后正确使用参数?

注册表部分(在设置页面):

%1 是我将获得的参数(从 url 到我的应用程序)。

网络链接可能是:

所以网页中有很多链接可以调用同一个应用程序。

但是我不能让我的应用每次都被打开(即应该只打开一个应用,其他点击链接只会给应用发送参数)。

我知道如何通过代码找出应用程序是否打开:

打开应用程序时是否可以将参数作为注册表方法发送?

我什至考虑Registry.GetValue在我的应用程序启动时读取注册表,

使用计时器每秒读取注册表值......

这是我第一次面对这种用户要求的情况,

希望有人能给我任何方向!

提前致谢。

0 投票
1 回答
218 浏览

multithreading - 在异步可插入协议线程中 - 如何将其关联/解析到实现 ::SetSite() 的特定 COM 对象?

在 IE11 中,当访问诸如 www.yahoo.com 之类的站点时,多个线程将触发到 APP 中——并且这些线程中只有很小的一个子集可以与浏览器窗口相关联(通过查询服务提供商等)。创建选项卡时在 ::SetSite() 调用中传递。

这不适用于现代网站上的大多数线程(例如 www.evernote.com)

如何确定线程代表哪个 IE 选项卡 - 或者这是不可能的?

我很想知道有一些方法可以将这些线程与传递给 ::SetSite() (或类似的东西)的 pUnkSite 相匹配——但这似乎与我迄今为止所经历的 IE 模型不同。

谢谢。

0 投票
0 回答
192 浏览

c# - 类似于 WebKit 的异步可插拔协议?

多年来,我们在 C# .NET 应用程序中使用 WebBrowser 组件以及异步可插入协议来处理资源。这曾经对我们非常有效。不幸的是,这种方法仅适用于 IE 4 及更高版本,因为它与 Windows 中的 urlmon.dll 挂钩。

现在,我们正在研究使用 WebKit 组件来显示(和报告)HTML 内容。因此,异步可插拔协议不再是一种选择。

WebKit 有类似的东西吗?这个想法是使用自定义处理程序(最好在 C# 中)处理诸如“resource://...”之类的 URL,以定位资源并将它们作为流提供回 Web 引擎。

请参阅下面的一些示例:

或这个:

0 投票
0 回答
173 浏览

c++ - 使用 URL 中的重复路径调用异步可插入协议处理程序 Start()

我有一个用于应用程序的异步可插入协议处理程序,该处理程序主要模仿 file:// 协议,但将请求限制在应用程序中配置的沙箱中。

该应用程序使用 C# 中的 WebBrowser 控件托管 AngularJS Web 应用程序。当 Angular 的路由器使用该协议请求视图模板文件时,我会收到一个对 IInternetProtocolInfo::CombineUrl() 实现的请求,其中包含以下 baseUrl 和 relativeUrl:

我的代码是:

这会导致使用以下 url 调用 IInternetProtocol::Start():

正如我们所看到的,文件的路径已被复制,我不知道为什么。似乎只有 AngularJS 的视图模板文件会遇到这个问题;其他相对路径绝对可以正常工作(例如从 bower_components/node_modules 中提取其他脚本文件)。

如果它是重复的,我想避免不得不破解它以将路径分成两半。urlmon 用这个奇怪的 url 调用我的协议一定是有原因的......