我遇到Web应用程序需要的问题(在用户通过Javascript进行交互之后)
1)打开Windows窗体应用程序
2)向app发送参数(例如ID)
相应地,Windows窗体应用程序应该能够
1)将参数发送回Web应用程序(更新URL正常)
2)在新的浏览器中打开Web App,如果它不存在的话
如果打开许多浏览器窗口,则更新正确的浏览器窗口非常重要。
Windows窗体应用程序在ASP.NET中
浏览器是IE6 +
应用程序是受控制的,并且是特定组织的内部应用程序,因此这不是启动自定义应用程序的问题。
问题A)这可能吗?
问题B)如何从Web App向打开的Windows窗体应用程序发送参数?
问题C)如果更新Web应用程序,如何确保定位正确的浏览器?
答案 0 :(得分:6)
你所要求的是可能的,但似乎很尴尬。
出于安全考虑,尝试从网页调用应用程序不是您可以做的事情。但是,您可以创建一个与某种类型的文件相关联的桌面应用程序,然后在网页上使用内容类型,以确保在打开具有此类型的URL时调用您的应用程序。它类似于MS Office处理.doc或.xls文档的方式,或者Media Player打开.mp3或.wmv文件。
第二部分(从您的应用程序打开特定网页)更容易。 您应该知道网页的地址是否创建了包含所需参数的URL字符串,并在默认浏览器中打开它(有很多关于如何操作的示例,下面是一个示例)。
System.Diagnostics.Process.Start("http://example.com?key=value");
如果您想在已打开的浏览器中更新页面或使用您选择的浏览器(即IE6而不是Opera或Chrome),那么您将不得不做一些功课,但它仍然很容易。
答案 1 :(得分:2)
PokeIn库可以实时/按用户将桌面应用程序连接到您的Web应用程序。此外,由于其反向ajax状态管理,您可以将两个应用程序视为一个。
答案 2 :(得分:1)
退房 http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx
在网页中使用VBScript,您可以调用打开的Windows窗体应用程序并向其发送密钥。
这仅适用于IE,您需要调整安全设置以允许ActiveX。
答案 3 :(得分:1)
答案 4 :(得分:0)
不,我不认为这是可能的 想想病毒/木马/间谍软件。如果可以从纯HTML页面启动应用程序,那么安装恶意软件将非常容易 浏览器旨在阻止您这样做。
答案 5 :(得分:0)
您可以使用clickonce来部署和启动表单应用程序 - 这应该负责将参数发送到应用程序。
答案 6 :(得分:0)
虽然这可能不完全适合您的应用程序,但使用Web服务和表单呢?
此外,您可以传递参数以确保IE6,而不是Firefox打开。
System.Diagnostics.Process.Start("c:\ie6\ie6.exe http://www.example.com/mypage");
答案 7 :(得分:0)
好的,所以我实际上找到了网络的线索 - > winform part。
以下代码是从一个将参数发送到winform应用程序的Web应用程序发给我的。我假设这个解决方案有一些安全因素在起作用(例如允许在网页中运行VBScript(和ActiveX?)。但这对我来说没问题。
代码:
<script type="text/vbscript" language="vbscript">
<!--
Function OpenWinformApp(chSocialSecurityNumber)
Dim oWinformAppWebStart
Set oWinformAppWebStart = CreateObject("WinformAppWebStart.CWinformAppWebStart")
oWinformAppWebStart.OpenPersonForm CStr(chSocialSecurityNumber)
End Function
-->
</script>