HTML超链接调用带参数的可执行文件

17

-您好,寻求帮助。

我们目前拥有一个Winform应用程序,在公司内部做审批。该应用程序向“审核者”发送HTML电子邮件,审核者在电子邮件中阅读相关信息,然后单击超链接启动应用程序以便他们进行批准。

目前,这是通过在电子邮件HTML中包含以下内容来完成的:

<a href=file:///C:\Temp\test.exe>点击进行批准</a>

这将正确启动应用程序,经过一些我们可以接受的安全警告。我们使用Outlook 2010。

现在,为了改进这个过程,我需要传递一个标识审核者的参数给应用程序。如果我从Windows快捷方式传递参数,这将正常工作,但是,我找不到一种方法来在href属性中传递参数以便从电子邮件中执行此操作。我到处找了一圈,除了问题什么都没发现。

我尝试了以下方法都没有成功:

<a href=file:///C:\Temp\test.exe approverID>点击进行批准</a> <a href=file:///C:\Temp\test.exe 'approverID'>点击进行批准</a> <a href="file:///C:\Temp\test.exe approverID">点击进行批准</a>

我还尝试使用JavaScript,从HTML页面可以正常工作,但是在Outlook的电子邮件中无法执行。

我想也许这种方法存在安全威胁,因此不可能实现,但是如果我可以成功地从电子邮件运行exe文件,为什么不能使用参数运行exe文件?毫无意义。

谢谢您的帮助。

Leo

3个回答

9

在没有得到任何合适的回应并继续进行研究后,我暂时得出结论,我所寻找的东西是不可能的。如果不可能的原因涉及安全问题,那么我完全不明白为什么允许运行没有参数的exe,因此被认为比带参数的exe更少有害。毫无疑问,一个exe不需要参数就可以具有危害性。如果有人能够详细解释一下这个问题,那对我来说会很有教育意义,谢谢。

尽管如此,我已经想到了一个替代我的问题的方法,虽然不像在href中声明参数那样优雅,但它能够满足我的需求。因为我们的应用程序是从网络驱动器运行的,所以我将其更改为在网络驱动器上创建特定用户的cmd文件,并且电子邮件中的超链接指向这些cmd而不是exe。这样,cmd文件包含正确参数的exe调用,由于cmd文件非常轻便且编写速度快,这是可以接受的。

我将这个问题标记为“已回答”,但实际上它还没有得到解决。

感谢您抽出时间阅读。

Leo


1
感谢您的努力和提供的信息...时至2014年,我仍然无法找到一个优雅的解决方案 :-) - Riegardt Steyn
一个回答说某件事情无法完成仍然是一个回答。感谢这个回答。 - eis
1
一个非常普通的解决方案是创建许多具有不同参数的小快捷方式,然后超链接到其中之一。 - Frank_Vr

6

大卫,谢谢你。我看了你提供的信息,但是我无法看出它如何与从电子邮件启动带有参数的可执行文件相关。也许这似乎涉及修改审批人员计算机的注册表,但我做不到那样。该应用程序位于网络驱动器上,所有批准人员都只需从该位置运行它,而我无法访问他们的计算机。 - leoinlios
好的,如果您创建一个协议,可以将参数传递给注册表中的参数,例如:yourptotocol://arg1/arg2/etc,它将对应到注册表中的 C:\\PAth\\blabla\\bob.exe %1 %2 %3 等内容。 - David Bélanger
但是我的问题是关于在HTML的href属性中传递参数。我没有问题将参数传递给我的应用程序,请求是从电子邮件中的链接进行传递。谢谢。 - leoinlios

4
我曾经遇到过同样的问题,我找到的一个解决方法是创建一个.bat文件并将其附加到电子邮件中,其中包含命令行和相应的参数,用户双击附件,确认要打开文件,然后.bat运行。虽然不如链接干净,但我认为在某些情况下这是一种可接受的解决方法。 重要提示:我的操作系统是Win7,邮件客户端是Lotus Notes,我不确定这种替代方法是否适用于其他邮件客户端/操作系统。

1
我知道这个问题很老了 - 但是我使用href链接调用了bat文件,打开了我的应用程序并传递了我的参数...这非常好!我还使用了网络共享,所以只需要一个bat文件就比每个OP答案都有多个链接要好。 - jharr100

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接