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.
小智 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)
我认为这也适用于其他类型的文件。
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 链接。
| 归档时间: |
|
| 查看次数: |
40769 次 |
| 最近记录: |