打开应用程序并从电子邮件中的超链接传递参数

时间:2014-03-05 14:45:13

标签: .net vb.net argument-passing file-association

这一切都在内部通过可信/完全访问完成。

如何从电子邮件中的超链接打开我的应用程序并传递参数?

我知道我可以设置文件/链接类型关联(虽然我不确定如何以编程方式或在安装期间执行此操作)。这是最好的方法和/或我如何设置它?

我可以在打开应用程序时传递参数(虽然看起来有点像一种hacky方式)但是当应用程序已经打开(仅限单个实例)时,这将无法工作,这很可能永远是情况下。

我已经看到一些用JavaScript / ActiveX完成的东西,但由于这些链接总是在Outlook中的电子邮件中,我不会这样做。

所有计算机都使用Windows 7和.Net 4.1

2 个答案:

答案 0 :(得分:4)

请参阅控制面板项“默认程序”,然后“设置关联”(“使文件类型或协议(例如.mp3或http://)始终在特定程序中打开”

这些是通过注册表项设置的(可以使用安装程序完成)。你通过整个网址作为你的第一个参数,所以你需要将它分开。

参见文档:

http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx

有一些注册表项和一个简单的演示程序的例子。

作为参考,注册表项的结构如下:

HKEY_CLASSES_ROOT 
   myapp
      (Default) = "URL:MyApp Protocol"
      URL Protocol = ""
      DefaultIcon
           (Default) = "myapp.exe,1"
      shell
           open
                command
                     (Default) = "C:\Program Files\WunderWurks\myapp.exe" "%1"

完成设置后,您可以为应用添加常规HTML链接,例如<a href="myapp:one_two_three">Click here</a>

您的应用将被调用为myapp.exe one_two_three

答案 1 :(得分:0)

使用vb脚本(如果可以的话) - 您可以使用以下代码:

    <script type="text/vbscript" language="vbscript">

    sub testing

     Set wshShell = CreateObject ("WSCript.shell")
     wshshell.run "c:\path\programName.exe arg1 arg2 .... argn"
     set wshshell = nothing

    end sub

    </script>