Microsoft Edge von VB aus starten

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Peter329.

    Microsoft Edge von VB aus starten

    Hi,

    ich würde gern einen .HTML File von meinem Programm aus im Ms Edge anzeigen.

    Allerdings ist mein Default Browser Firefox ... und das möchte ich auch auf keinen Fall ändern ! :)

    Ich möchte das Program deshalb über den Programmpfad starten:

    VB.NET-Quellcode

    1. Dim EDGE As String = "...Pfadangabe..."
    2. Try
    3. Process.Start(EDGE, """" & FileObject & """")
    4. Catch ex As Exception
    5. MessageBox.Show(ex.Message)
    6. End Try


    Um den Programmpfad herauszufinden habe ich mir die Properties des Edge Icons angesehen.Aber das ist irgendwie kein Standardpfad ... sondern verweist auf eine Application ...

    Wie starte ich denn das Dingens jetzt aus meinem Programm ?

    LG
    Peter
    Bilder
    • s 2020-04-27 12-27-464.jpg

      25,93 kB, 357×499, 163 mal angesehen
    @Peter329 Ich hatte mal ein ähnliches Problem mit dem Taschenrechner.
    Ich gehe mal davon aus, dass es zu Edge auch einen "richtigen" Link gibt.
    Was sagt der TaskManager zu Edge?
    Was siehst Du, wenn Du per Programm alle offenen Prozesse abfragst?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hi,

    probier mal so:

    C#-Quellcode

    1. var p = new System.Diagnostics.Process();
    2. p.StartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c start microsoft-edge:https://www.youtube.com");
    3. p.StartInfo.WorkingDirectory = @"c:\windows\system32";
    4. p.StartInfo.UseShellExecute = false;
    5. p.StartInfo.CreateNoWindow = true;
    6. p.Start();


    Ist zwar in C#, ist aber 1:1 nach VB übertragbar.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Hi, ihr beiden,

    der Task Manager zeigt Edge natürlich ... aber die"Properties" sind disabled und lassen sich nicht abfragen.

    In der Program List erscheint MicrosoftEdgeCP mehrmals und MicrosoftEdgeSH einmal. Also so einfach wird sich die Kiste wohl nicht starten lassen.

    Ich habe dann den Ansatz von SpaceyX probiert, der die Application genialerweise mit "cmd" öffnet. Mit dem YouTube LInk klappt das auch. Aber wenn ich da meinen File eingebe, dann wird der nicht geöffnet, sondern der Request landet bei BING. (s. Anhang). Offensichtlich scheitert der Verweis auf meine Source Datei.

    VB.NET-Quellcode

    1. 'Run html file
    2. FileObject = "C:\Test\index.html"
    3. Dim p As New System.Diagnostics.Process()
    4. p.StartInfo = New System.Diagnostics.ProcessStartInfo("cmd", "/c start microsoft-edge:" & FileObject)
    5. p.StartInfo.WorkingDirectory = "c:\windows\system32"
    6. p.StartInfo.UseShellExecute = False
    7. p.StartInfo.CreateNoWindow = True
    8. p.Start()
    9. ]


    Auch mit "file" prefix klappt das nicht:

    VB.NET-Quellcode

    1. FileObject = "file:\\C:\Test\index.html"


    Und auch wenn ich den Namen mit Quotes einrahme, ändert sich nix.

    Die Übergabe der Start file-URL muss wohl irgendwie anders funktionieren.

    Any bright ideas ? :)

    LG
    Peter
    Bilder
    • s 2020-04-27 14-45-254.jpg

      83,29 kB, 951×567, 129 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Peter329“ ()

    @Peter329 Probierma alle durch, bis Deiner gestartet wird:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Tja, so wie das aussieht, scheint das mit meinem Vorschlag nicht zu gehen. Hat wohl damit zu tun, dass Edge in einer Sandbox läuft. Ich würd fast soweit gehen, das unsägliche WebBrowser-Control aus der Toolbox dafür zu nutzen, wenn es nur darum geht, eine locale HTML-Datei anzuzeigen.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Hab auf stackoverflow was gefunden. Funktioniert:

    VB.NET-Quellcode

    1. <Runtime.InteropServices.DllImport("Shell32.dll")> Private Shared Function ShellExecuteA(hwnd As IntPtr, lpOperation As String, lpFile As String, lpParameters As String, lpDirecotry As String, nShowCmd As Integer) As Integer : End Function
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. ShellExecuteA(IntPtr.Zero, "open", "shell:Appsfolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge", PfadZuDeinerDatei, Nothing, 10)
    4. End Sub

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Also, ihr Lieben, danke für eure unendliche Mühe. Da hab ich jetzt eine Menge gelernt.

    Man muss den EDGE also als Application starten ... und das geht mit Parameter Übergabe nur über das ShellExecuteA. Gut ... das sollte man wissen, sonst kann man sich die Zähne ausbeißen ! :)

    Warum Microsoft der Application so einen absolut kryptischen Namen vergibt, muss man wohl nicht verstehen. Na, vielleicht gibt es ja einen guten Grund dafür, der einem unbedarften Menschen (wie ich es nun mal bin), verborgen bleibt. :)

    Mit der Suche nach ShellExecuteA habe ich im VB paradise Archive einen sehr guten Beitrag gefunden, wo die Parameter und Konstanten erläutert werden.

    vbarchiv.net/api/api_shellexecute.html

    Anzumerken ist, dass der letzte Parameter nShowCmd mit Edge anscheinend nicht funktioniert. Da kann ich statt der 10 eintragen was ich will, das Verhalten bleibt das Gleiche ! Das ist aber wohl kein Problem des ShellExecuteA, der Sch..ß Edge wertet den Parameter vermutlich einfach nicht aus.

    Wie generell das Startverhalten des Edge sagen wir mal "gewöhnungsbedürftig" ist. Normalerweise merkt sich Edge (wie andere Applications) Location und Size der letzten Session. Wenn man aber den Edge an den linken oder rechten Monitor Rand schiebt, und damit die Anwendung auf die linke oder rechte Bildschirmhälfte einstellt, dann wird der nächste Start den Edge im FULLSCREENMODE öffnen, auch über den Click auf das IDesktop Icon ! Wer sich das ausgedacht hat ? Na, ich würde sagen, dass ist eher ein BUG als ein FEATURE.

    Also ... das mit dem linken / rechten Bildschirmrand verkneife ich mir halt beim Edge.... und dann kann ich mit ShellExecuteA leben, weil ich das ja nur in einigen Ausnahmefällen brauche.

    Ich weiß schon, warum ich meinem geliebten Firefox die uneingeschränkte Treue halte!

    Danke für eure unendliche Mühe ... ich hoffe, dass Leute mit ähnlichen Problemen hier jetzt eine vernünftige Lösung finden ... und ansonsten wünsche ich euch einen schönen Tag, coronabedingt vermutlich im home office ! :)

    LG
    Peter