运行从Web浏览器安装在客户端计算机上的exe文件

时间:2011-09-18 20:54:00

标签: html browser dll activex

我有一个用VB.NET编写的小exe文件连接到数据库,获取最后一行并将信息发送到打印机。它只是程序的一小部分,但它使用特殊字体并计算打印机的宽度。

我用PHP开发了相同的程序。现在几乎所有的功能都与基于Windows的程序相同。但是Web浏览器的打印结果与exe文件的打印结果不一样。所以我想只是向exe文件发送一个参数并运行它。 (使用javascript调用或者)exe文件在客户端计算机上,我将知道它位于何处。

你能建议我这样做吗? 我读到这可以使用dll或ocx。

我不熟悉开发浏览器插件。 是否有教程或书籍? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

如果我的机器突然问我网站是否可以下载并运行exe,我会在对话框完成渲染之前关闭窗口。

这里最简单的方法是修复php输出的格式。仅仅因为你可以在客户端执行一个exe文件,距离你应该的意义是一百万英里。除非你知道并完全控制那些用户正在使用的用户和系统,否则任何与exe相关的系统都会变得脆弱,即使你确实拥有这种控制,它也是一种躲避。

有为PHP编写的pdf库,可以让你更好地控制你的输出,包括字体。在Sitepoint上写了一个这样的库。

或者,您可以将您的.NET应用程序转换为您的php可以与之通信的Web应用程序/服务。

答案 1 :(得分:0)

开发一个浏览器插件来做你想做的事并不是非常困难;我必须同意JHolyhead的意见,如果可以的话,最好避免这样做,因为有一些重要的安全考虑因素。

您需要了解一些C ++,并且可以使用FireBreath框架编写可在所有平台上运行的插件。启动流程可以使用CreateProcessEx完成,您将遇到的主要挑战是,当您启用vista / win7 w / UAC时(由于受保护模式),该流程将在IE中以低完整性模式启动。最简单的解决方法是将站点添加到可信站点列表中,但有一些方法可以使启动流程成为中等完整性(正常非提升)模式。

如果您了解C ++并且具有一些Windows开发经验,那将非常容易;如果你不这样做,可能会有点棘手。如果还有其他选项(不要求你安装浏览器插件),你最好跟随它们。但是,基本的FireBreath插件可以在大约20分钟内抛出(有视频教程)。