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.
Antworten
Zu viele Anzeigen?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>
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.
Erstellen Sie eine Batch-Datei und rufen Sie die Bacth-Datei in Window.open auf. So funktioniert es
- eine Datei in Notepad erstellen
- schreiben Sie Ihr Skript : wmplayer starten " \dotnet\sc\1234.mp4 " /fullscreen
- Speichern unter: test.bat in \dotnet\sc\test.bat
in html
window.open('datei://dotnet/sc/test.bat')
Viel Spaß!
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: