我正在通过C#生成一个HTML报告来打印一个包含3列的表中的文件对:前两列用于文件名,第三列是超链接比较 - 我希望此链接运行WinMerge以比较两个文件,我目前不知道该怎么做.
Nam*_* VU 21
试试这个
<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>
Run Code Online (Sandbox Code Playgroud)
Nic*_*ver 13
对不起,这个答案很糟糕,但你不能通过点击启动任何外部应用程序,因为这将是一个严重的安全问题,这个功能在HTML或javascript中不可用.想想刚刚cmd.exe使用args 启动...你想用参数启动WinMerge,但你可以看到通过允许任何事情引入的安全问题.
唯一的可能是可行的例外,我能想到的将是一个协议处理程序(因为这些明确定义的处理器),如winmerge://,但最好的方式传递2个文件参数我不知道,如果它是很值得探讨的一个选项,但我不确定你是或不允许对客户做什么,所以这可能是一个非首发解决方案.
从HTML启动应用程序的合理方法是通过url方案.因此,您可以通过mailto:链接和irc通过irc:链接启动电子邮件.各个应用程序可以实现这些方案,但我不确定WinMerge是否这样做.
小智 5
制作一个批处理文件,然后在Window.open中调用bacth文件。这是如何运作的
在HTML
window.open('file://dotnet/sc/test.bat')
请享用..