如何在Microsoft Edge浏览器中打开本地HTML文件?

War*_* P 25 windows winapi windows-10 microsoft-edge

从远古时代开始,如果您运行Web浏览器可执行文件,大多数Web浏览器都能够打开本地文件,例如只执行iexplore.exe file:/c:/temp/file或通过IShellDocView接口.我试图在我自己的程序中使用Microsoft Edge在Windows 10中执行此操作,并且我不知道如何执行此操作.

可执行文件似乎完全没有文档,没有响应/?或者/ help,无论我传递给它什么都会崩溃,并且考虑到路径似乎可能会改变,可能不是直接调用此可执行文件的正确方法:

  C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftEdge.exe  <whatever>
Run Code Online (Sandbox Code Playgroud)

Windows中是否有一个可以调用的API,它会打开Edge,即使它不是当前的默认浏览器?

如果它是默认的浏览器,我相信我可以通过Win32 shell-API做我想要的ShellExecute.我希望能够在Edge中启动一些东西,即使我已经将另一个浏览器设置为我的默认浏览器,以便自动执行某些Web测试任务.

是否有Edge的编程接口或API?出于这个问题的目的,让我们说我想用C语言写这个,但无论我使用什么语言都应该是相同的API,所以我没有标记这个问题C.

如果无法以编程方式执行此操作,是否可以使用命令行参数并传递给MicrosoftEdge或MicrosoftEdgeCP可执行文件?

Sam*_*son 10

目前不支持此功能,但团队正在评估它作为一种选择.目前,在Edge中打开资源的最简单方法是使用microsoft-edge:协议处理程序.例如,您可以运行microsoft-edge:http://stackoverflow.com打开Edge中的Stack Overflow.

  • 这太荒谬了!Edge无法通过命令提示符打开本地文件?似乎必须有办法.您可以通过右键单击本地文件并选择打开边缘来打开一个...那么它是如何工作的? (9认同)
  • 为了防止它有用,以下用于通过Windows API ShellExecute处理本地文件:`microsoft-edge:file:/// c:/ path/to/page.htm` - 但是在最近的Windows 10更新之后它不再适用于本地文件,仅适用于http/https.直到那时我才在商业计划中成功使用这种方法.我提到它是因为它可能已经存在必要的功能,但可能需要Edge团队再次启用. (8认同)
  • 这对于用户想要选择的场景是有意义的.某些用户(尤其是开发人员)希望使用特定工具呈现特定文件,以便他们可以检查该文件是否在该浏览器中呈现.其他所有浏览器都让这很简单.启动可执行文件,在`file:/ c:/ path/to/file.html`语法中提供url.完成 (5认同)
  • 我认为Edge团队已经将普通消费者安全优先考虑到使Edge浏览器无法用于开发人员工作流程的极端情况. (4认同)
  • 明白了,同意了。我现在正在和我们的一些工程师讨论一个话题。 (2认同)
  • @Sampson 你知道团队是否仍在评估它作为一种选择吗? (2认同)

小智 5

例如,以下是使用 Edge 打开 PDF 的方法。

在类的顶部添加以下标题:

[DllImport("Shell32.dll")]
public static extern int ShellExecuteA(IntPtr hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirecotry, int nShowCmd);
Run Code Online (Sandbox Code Playgroud)

以下是如何拨打电话的示例。

ShellExecuteA(System.IntPtr.Zero, "open", @"shell:Appsfolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge", "C:\MyFile.pdf", null, 10);
Run Code Online (Sandbox Code Playgroud)

我认为这也适用于其他类型的文件。


www*_*Com 5

2020 年新功能:这仅适用于基于 Chromium 的新 Edge(绿蓝色徽标)。它不适用于传统的“现代”Edge(深蓝色徽标)。

使用新的基于 Chromium 的 Edge,如果您包含完整的绝对路径,它现在可以正常工作。

在我的 Windows 10 64b PC 上的 cmd 提示符下测试:

"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
file:///C:/MyApplications/MyTestApp.htm
Run Code Online (Sandbox Code Playgroud)

..这一切都在一行上,之间有简单的空格。

我不是 MS 的粉丝,但这是他们最新版本的(慢速) Egde 链接。