Как открыть локальный HTML файл в браузере Microsoft Edge?

С незапамятных времен большинство веб-браузеров смогли открыть локальный файл, если вы запустили исполняемый файл веб-браузера, например, просто выполните iexplore.exe file:/c:/temp/file или через интерфейсы IShellDocView. Я пытаюсь сделать это из моей собственной программы, в Windows 10, с Microsoft Edge и не знаю, как это сделать.

Исполняемый файл, как представляется, полностью не документирован, не отвечает на /? или/help, и просто сбой, независимо от того, что я передаю ему, и учитывая, что путь, вероятно, изменится, вероятно, не правильный подход для непосредственного вызова этого исполняемого файла:

  C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftEdge.exe  <whatever>

Есть ли API в Windows, который может быть вызван вместо этого, который откроет Edge, возможно, даже если это не текущий браузер по умолчанию?

Если это был браузер по умолчанию, я считаю, что могу просто сделать то, что хочу, через оболочку-API Win32 ShellExecute. Я хотел бы иметь возможность запускать что-то в Edge, даже если я установил другой браузер в качестве моего значения по умолчанию, но для автоматизации некоторых задач веб-тестирования.

Существуют ли программные интерфейсы или API для Edge? Для целей этого вопроса, скажем, я хочу написать это на C, но это должен быть тот же API, независимо от того, какой язык я использую, поэтому я не отмечал этот вопрос C.

Если нет возможности сделать это программно, есть ли аргумент командной строки, который я мог бы использовать, и передать исполняемый файл MicrosoftEdge или MicrosoftEdgeCP?

Ответы

Ответ 1

В настоящее время это не поддерживается, но команда оценивает его как вариант. В настоящее время самый простой способ открыть ресурс в Edge - с помощью обработчика протокола microsoft-edge:. Например, вы можете запустить microsoft-edge: /fooobar.com/..., чтобы открыть Qaru in Edge.

Ответ 2

Вот как вы можете открыть PDF файл, например, с помощью Edge.

Добавьте следующий заголовок вверху вашего класса:

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

Вот пример того, как сделать звонок.

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

Я думаю, что это будет хорошо для других типов файлов.

Ответ 4

Это работает в моей системе:

создать общий доступ и дать себе доступ

откройте в Microsoft Edge, как простой пример: file:////bookmark.html

Вы можете получить имя хоста с помощью команды hostname Powershell среди других способов, вы можете увидеть все каталоги, которыми вы делитесь, с помощью файлового менеджера, открывающего "сеть", на вашем компьютере, и вы должны увидеть все общие ресурсы, которые вы создали

не обязательно глубоко удовлетворяющий ответ, но работает для того, что мне нужно.

Ответ 5

Су, что он не работает, больше не используется и для меня, но небольшое исправление, если вам нужно было немного изменить Code Universal, перейдите в Свойства файла и/или Панели управления FileType Ассоциации и измените Html File To Edge как по умолчанию при запуске это должно повторно активировать возможность использовать браузер Edge в качестве средства запуска по умолчанию для типа файлов на большинстве языков сценариев, чтобы вы могли использовать оболочку или параметры запуска по умолчанию для cmd в своих сценариях

Ответ 6

Следующее работает для локальных файлов, а также принимает запросы (?) И фрагменты (#) в URI.

Пример WinAPI/ShellAPI для локального файла HTML:

ShellExecute(
    NULL,
    NULL,
    _T("shell:Appsfolder\\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge"),
    _T("file:///c:/temp/test.html?page=1#anchor-1"),
    NULL,
    SW_SHOWNORMAL);

Ответ 7

Edge запускает локальные файлы из закладки. Невыпуск из командной строки был бы хорошим выходом из прикрепленного файла.