你将如何从一个asp.net页面启动一个winform应用程序?如何从一个asp.net页面启动一个winform应用程序?
回答
出于安全原因,网络和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浏览器,只有用户授予其访问后工作。
为什么你需要与桌面应用程序进行交互?也许有更好的方法来创建这种交互。
我需要它才能与用户的Outlook本地安装进行交互。具体来说,要将电子邮件保存到他们的草稿文件夹中。我曾尝试通过WebDAV(直接与Exchange服务器交流)等,但发现它们并不完全满足我的需求。 – Andrew 2009-11-12 01:41:02
我试过你的方法。当我在一个普通的html页面上使用它时,它就起作用了。但是,当我在我的asp.net页面中使用它时,会出现此错误:“自动化服务器无法创建对象。”任何想法这意味着什么? – Andrew 2009-11-12 02:30:28
更新:我通过将IE的安全设置降低到“低”来解决了错误。 – Andrew 2009-11-12 02:37:32
如果你真的是WinForm的,像你的标签,而不是网上表格,回答是,你不能只用ASP,因为这将是一个显著的安全问题做到这一点。您可能需要一个ActiveX控件或类似的东西。
对不起,是的,我的意思是Winforms。现在修正了标题。 – Andrew 2009-11-12 00:24:38
转换要嵌入到更多的WinForm应用程序Web友好Silverlight。
感谢您的回答。但是,我需要能够与用户本地安装的Outlook进行通信。通过Silverlight可以实现吗? – Andrew 2009-11-12 00:20:59
正如它已经说过,我不认为你可以做到这一点。您可以做的是在您的网站上发布一个链接到您的应用程序(或其安装包),并让用户下载并运行它。有明显的问题,例如对于任何.net应用程序,您都需要.net运行时的正确版本才能安装在用户的机器上。
作为一种替代你正在试图做的,请,看一看在ClickOnce Deployment documentation MSDN上的东西;这可能是你正在试图做的
如果您有能力预先安装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>
优秀!我以前没见过这个。 – 2009-11-12 00:42:54
仅'应用协议注册'IE8? – 2009-11-12 00:53:51
没有。 AFAIK,这是一个Windows的东西......而不是浏览器的东西。我已将链接更改为更好的页面。 – Larsenal 2009-11-12 00:58:21
- 1. 如何从另一个应用程序启动一项活动?
- 2. 如何从两个活动启动一个Android应用程序
- 3. 如何从另一个程序启动一个程序
- 4. Sitefinity在应用程序启动之前创建一个页面
- 5. 如何从另一个应用程序启动移动应用程序?
- 6. 从另一个iphone应用程序启动一个iphone应用程序?
- 7. 从WPF应用程序启动WinForm
- 8. Nativescript - 从Nativescript应用程序启动另一个应用程序
- 9. 从另一个Java应用程序启动Java应用程序
- 10. 从另一个应用程序启动Java应用程序
- 11. 从另一个rcp应用程序启动rcp应用程序
- 12. 从另一个应用程序启动应用程序
- 13. 启动主页选择从一个应用程序
- 14. 一个asp.net应用程序中的多个登录页面
- 15. 如何从asp.net web应用程序启动远程windows桌面
- 16. 如何从另一个silverlight应用程序启动silverlight应用程序
- 17. 如何调试从另一个应用程序启动的应用程序? (VB6)
- 18. 如何从android中的另一个应用程序启动应用程序?
- 19. 如何从另一个iPhone应用程序启动MobileIron Web @ Work应用程序?
- 20. 如何从另一个应用程序启动新的应用程序?
- 21. 如何从iPhone应用程序启动另一个应用程序
- 22. 如何在Android上从另一个应用程序启动一个应用程序的主要活动
- 23. 从第一个应用程序启动第二个应用程序,然后关闭第一个应用程序
- 24. 如何从另一个Android应用程序启动Android服务
- 25. 如何从一个Java应用程序启动Microsoft边缘
- 26. 如何在Mac上从Java启动另一个应用程序
- 27. 如何从URI启动另一个Win Phone 8应用程序?
- 28. 如何从Android的另一个应用程序启动gtalk
- 29. 发布一个VB.NET Winform应用程序
- 30. 检测应用程序启动和从另一个页面返回
您是否想过类似于网页如何奇迹般地启动iTunes? – Larsenal 2009-11-12 00:38:08
是的,我认为是这样的。虽然,winform应用程序是我自己开发的,可以与用户本地安装的Outlook进行交流。 – Andrew 2009-11-12 01:42:04
如果您不需要传递任何参数并且只需要打开一个应用程序,那么我在下面描述的应用程序协议注册可能会有点过分。但是如果你能处理安全的前提条件,它可能会起作用。 – Larsenal 2009-11-12 02:18:14