Как открыть локальный 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);
Я думаю, что это будет хорошо для других типов файлов.
Ответ 3
Получить инструмент из https://github.com/MicrosoftEdge/edge-launcher
MicrosoftEdgeLauncher file:///C:/Users/me/Documents/homepage.html
Ответ 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 запускает локальные файлы из закладки. Невыпуск из командной строки был бы хорошим выходом из прикрепленного файла.