如何在asp.net页面中启动winform应用程序?

时间:2009-11-12 00:10:17

标签: asp.net winforms

您如何在asp.net页面中启动winform应用程序?

5 个答案:

答案 0 :(得分:4)

如果您能够预先安装WinForm应用程序,请查看 Application Protocol registration 。 Mozilla here 很好地描述了它。

这将允许您在ASP.NET应用程序中添加以下行:

thing:SomethingThatThingUnderstands

以下是打开OneNote的URL链接的示例(来自我链接的页面):

<html>
<head>
<title>Test of onenote: application protocol</title>
</head>
<body>
<p>Open the
   <a href="onenote://C:\Program Files\Microsoft Office\Templates\1033\ONENOTE\12\Stationery\BLANK.ONE"> Notebook.</a></p>
</body>
</html>

答案 1 :(得分:1)

如前所述,我认为你不能这样做。您可以做的是在您的网站上发布您的应用程序(或其安装包)的链接,并让用户下载并运行它。这有明显的问题,例如对于任何.net应用程序,您需要在用户计算机上安装正确版本的.net运行时。

作为您尝试做的替代方案,请查看msdn上的ClickOnce Deployment documentation;这可能是你想要做的事情的解决方案

答案 2 :(得分:0)

如果你真的是指Winform,就像你的标签,而不是Webform,答案是你不能只使用ASP,因为这将是一个重大的安全问题。您可能需要ActiveX控件或类似控件。

答案 3 :(得分:0)

将您希望嵌入的winform应用程序转换为更适合网络的Silverlight

答案 4 :(得分:0)

出于安全原因,Web和Silverlight和Flash不允许您直接与用户文件系统交互,因为这会使病毒编写变得容易。

当然,只要您的用户接受控件,您就可以使用ActiveX控件执行任何操作。

此网站提供tutorial on launching an app for a client

<SCRIPT Language="JScript">
function runcmd() {
File="cmd.exe";
WSH=new ActiveXObject("WScript.Shell");
WSH.run(File);
}
</SCRIPT> 

<A href="#" onClick="runcmd(); return false;">Run CMD.exe</A>

请注意,这仅适用于IE,并且仅在用户授予其访问权限后才能使用。

为什么需要与桌面应用程序进行交互?也许有更好的方式来创建这种互动。