23 Stimmen

Wie kann man ein externes Programm, z. B. Notepad, über einen Hyperlink aufrufen?

Ich generiere einen HTML-Bericht von C#, um Paare von Dateien in einer Tabelle zu drucken, die 3 Spalten hat: die ersten beiden Spalten für die Dateinamen verwendet und die 3. Spalte ist ein Hyperlink Vergleichen - ich möchte, dass dieser Link WinMerge ausführen, um zwei Dateien zu vergleichen, und ich weiß derzeit nicht, wie es zu tun.

20voto

Nam G VU Punkte 30552

Versuchen Sie dies

<html>
    <head>
        <script type="text/javascript">
        function runProgram()
        {
            var shell = new ActiveXObject("WScript.Shell");                 
            var appWinMerge = "\"C:\\Program Files\\WinMerge\\WinMergeU.exe\" /e /s /u /wl /wr /maximize";
            var fileLeft = "\"D:\\Path\\to\\your\\file\"";
            var fileRight= "\"D:\\Path\\to\\your\\file2\"";
            shell.Run(appWinMerge + " " + fileLeft + " " + fileRight);
        }
        </script>
    </head>

    <body>
        <a href="javascript:runProgram()">Run program</a>
    </body>
</html>

16voto

Nick Craver Punkte 609016

Tut mir leid, dass diese Antwort so schlecht ist, aber Sie können keine externe Anwendung per Mausklick starten, da dies ein ernsthaftes Sicherheitsproblem wäre. Diese Funktion ist in HTML oder Javascript nicht verfügbar. Denken Sie nur an den Start von cmd.exe with args...Sie wollen WinMerge mit Argumenten starten, aber Sie können die Sicherheitsprobleme sehen, die entstehen, wenn Sie dies für alles erlauben.

Die einzige möglicherweise Eine praktikable Ausnahme wäre ein Protokoll-Handler (da es sich um ausdrücklich definierte Handler), wie winmerge:// obwohl der beste Weg, um 2 Datei-Parameter übergeben ich nicht sicher bin, wenn es eine Option ist es wert ist, in, aber ich bin nicht sicher, was Sie sind oder sind nicht erlaubt, um den Client zu tun, so kann dies eine nicht-Starter-Lösung sein.

9voto

Jakub Hampl Punkte 38490

Der vernünftige Weg, um Anwendungen von HTML aus zu starten, ist über Url-Schemata. So können Sie eine E-Mail starten über mailto: Links und irc über irc: Links. Einzelne Anwendungen können diese Schemata implementieren, aber ich bin mir nicht sicher, ob WinMerge dies tut.

5voto

Sheryar Nizar Punkte 265

Erstellen Sie eine Batch-Datei und rufen Sie die Bacth-Datei in Window.open auf. So funktioniert es

  1. eine Datei in Notepad erstellen
  2. schreiben Sie Ihr Skript : wmplayer starten " \dotnet\sc\1234.mp4 " /fullscreen
  3. Speichern unter: test.bat in \dotnet\sc\test.bat

in html

window.open('datei://dotnet/sc/test.bat')

Viel Spaß!

4voto

Felix D. Punkte 4389

Ich habe dazu eine kleine Erweiterung geschrieben.

Da Sie die Seite mit C# erstellen, sollten Sie dies implementieren:

https://github.com/felix-d-git/DesktopAppLink

Grundsätzlich erstellen Sie einige Registrierungseinträge, um die Links zu analysieren, auf die Sie in Ihrer HTML-Seite klicken.

Der Browser fordert Sie dann auf, die angegebene Anwendung zu öffnen.

C#:

DesktopAppLink.CreateLink("applink.sample", "\"<path to exe>\"", "");

HTML :

<a href="applink.sample:">Run Desktop App</a>

Ergebnis:

enter image description here

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X