2009-11-12 22 views
1

你将如何从一个asp.net页面启动一个winform应用程序?如何从一个asp.net页面启动一个winform应用程序?

+0

您是否想过类似于网页如何奇迹般地启动iTunes? – Larsenal 2009-11-12 00:38:08

+0

是的,我认为是这样的。虽然,winform应用程序是我自己开发的,可以与用户本地安装的Outlook进行交流。 – Andrew 2009-11-12 01:42:04

+0

如果您不需要传递任何参数并且只需要打开一个应用程序,那么我在下面描述的应用程序协议注册可能会有点过分。但是如果你能处理安全的前提条件,它可能会起作用。 – Larsenal 2009-11-12 02:18:14

回答

0

出于安全原因,网络和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浏览器,只有用户授予其访问后工作。

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

+0

我需要它才能与用户的Outlook本地安装进行交互。具体来说,要将电子邮件保存到他们的草稿文件夹中。我曾尝试通过WebDAV(直接与Exchange服务器交流)等,但发现它们并不完全满足我的需求。 – Andrew 2009-11-12 01:41:02

+0

我试过你的方法。当我在一个普通的html页面上使用它时,它就起作用了。但是,当我在我的asp.net页面中使用它时,会出现此错误:“自动化服务器无法创建对象。”任何想法这意味着什么? – Andrew 2009-11-12 02:30:28

+0

更新:我通过将IE的安全设置降低到“低”来解决了错误。 – Andrew 2009-11-12 02:37:32

0

如果你真的是WinForm的,像你的标签,而不是网上表格,回答是,你不能只用ASP,因为这将是一个显著的安全问题做到这一点。您可能需要一个ActiveX控件或类似的东西。

+0

对不起,是的,我的意思是Winforms。现在修正了标题。 – Andrew 2009-11-12 00:24:38

0

转换要嵌入到更多的WinForm应用程序Web友好Silverlight

+0

感谢您的回答。但是,我需要能够与用户本地安装的Outlook进行通信。通过Silverlight可以实现吗? – Andrew 2009-11-12 00:20:59

1

正如它已经说过,我不认为你可以做到这一点。您可以做的是在您的网站上发布一个链接到您的应用程序(或其安装包),并让用户下载并运行它。有明显的问题,例如对于任何.net应用程序,您都需要.net运行时的正确版本才能安装在用户的机器上。

作为一种替代你正在试图做的,请,看一看在ClickOnce Deployment documentation MSDN上的东西;这可能是你正在试图做的

4

如果您有能力预先安装WinForm应用程序,请参阅Application Protocol registration。它由Mozilla描述得很好here

这将使你在你的ASP.NET应用程序的线沿线的添加URL:

thing:SomethingThatThingUnderstands 

下面是一个例子(从页我挂)的URL链接,将打开的OneNote:

<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> 
+0

优秀!我以前没见过这个。 – 2009-11-12 00:42:54

+0

仅'应用协议注册'IE8? – 2009-11-12 00:53:51

+0

没有。 AFAIK,这是一个Windows的东西......而不是浏览器的东西。我已将链接更改为更好的页面。 – Larsenal 2009-11-12 00:58:21

相关问题