it-swarm.com.de

Wie kann ich eine lokale HTML-Datei im Microsoft Edge-Browser öffnen?

Seit undenklichen Zeiten können die meisten Webbrowser eine lokale Datei öffnen, wenn Sie die ausführbare Datei des Webbrowsers ausführen, z. B. einfach iexplore.exe file:/c:/temp/file oder über die IShellDocView-Schnittstellen. Ich versuche dies in meinem eigenen Programm, in Windows 10 mit Microsoft Edge, und weiß nicht, wie es geht.

Die ausführbare Datei scheint völlig undokumentiert zu sein, reagiert nicht auf /? oder/help und stürzt einfach ab, egal, was ich darauf übergebe, und da sich der Pfad wahrscheinlich ändert, ist es wahrscheinlich nicht der richtige Ansatz, um diese ausführbare Datei direkt aufzurufen:

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

Gibt es in Windows eine API, die stattdessen aufgerufen werden kann und Edge öffnet, möglicherweise sogar, wenn es nicht der aktuelle Standardbrowser ist?

Wenn es sich um den Standardbrowser handelt, glaube ich, dass ich über die Win32-Shell-API ShellExecute tun könnte, was ich möchte. Ich möchte etwas in Edge starten können, auch wenn ich einen anderen Browser als Standard festgelegt habe, um bestimmte Webtestaufgaben zu automatisieren.

Gibt es programmatische Schnittstellen oder APIs für Edge? Angenommen, ich möchte dies in C schreiben, aber es sollte dieselbe API sein, egal welche Sprache ich verwende, also habe ich diese Frage nicht mit C gekennzeichnet.

Gibt es ein Befehlszeilenargument, das ich verwenden und an eine ausführbare Datei von MicrosoftEdge oder MicrosoftEdgeCP übergeben kann, wenn dies nicht programmgesteuert möglich ist?

21
Warren P

Dies wird derzeit nicht unterstützt, aber das Team prüft es optional. Der einfachste Weg, eine Ressource in Edge zu öffnen, ist zunächst die Verwendung des Microsoft-Edge:-Protokollhandlers. Sie können beispielsweise Microsoft-Edge: http://stackoverflow.com ausführen, um den Stapelüberlauf in Edge zu öffnen.

10
Sampson

So können Sie beispielsweise eine PDF mit Edge öffnen.

Fügen Sie den folgenden Header oben in Ihrer Klasse hinzu:

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

Hier ist ein Beispiel, wie Sie den Anruf tätigen können.

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

Ich denke, das gilt auch für andere Dateitypen.

2
TempGuest

Das funktioniert auf meinem System:

erstellen Sie eine Freigabe und geben Sie sich Zugriff

Öffnen Sie in Microsoft Edge ein einfaches Beispiel: file: ////bookmark.html

sie können den Hostnamen unter anderem über den Befehl hostname Powershell abrufen. Sie können alle freigegebenen Verzeichnisse mithilfe des Datei-Explorers anzeigen, indem Sie "network" auf Ihrem Computer öffnen. Sie sollten alle Freigaben sehen, die Sie eingerichtet haben

nicht unbedingt eine zutiefst befriedigende Antwort, funktioniert aber für das, was ich brauchte.

1
Augie Mattheiss

Das Folgende funktioniert für lokale Dateien und akzeptiert auch Abfragen (?) und Fragmente (#) in der URI.

WinAPI/ShellAPI-Beispiel für eine lokale HTML-Datei:

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

Fordern Sie das Tool unter https://github.com/MicrosoftEdge/Edge-launcher an

MicrosoftEdgeLauncher file:///C:/Users/me/Documents/homepage.html

0
Herschelle42