如何将HTML、CSS和Javascript转换成EXE文件?

7

我看到目前为止所有关于这个问题的答案都很混乱...有没有人能够给我提供一个详细的方法来使用HTML制作EXE应用程序?


如果你真的想要独立完成这个项目,你需要在其中有效地包含整个浏览器引擎,为什么不只是保持它们原来的样子呢? - Paul S.
1
在VB6时代,您可以向表单添加WebBrowser组件。它使用IE6的引擎,但那时被认为是很好的。 EXE的非SOP /沙盒访问使得在我开始使用Greasemonkey和服务器端内容之前,一些有趣的混搭EXE成为可能。我相信您仍然可以将类似于手机UIWebView的东西嵌入到.NET项目中。还要考虑HTA、Adobe AIR、“node-webkit”、Firefox应用程序和Chrome打包应用程序,与EXE不同,它们可以跨平台运行。我看不出.NET运行时和JS运行时之间有什么技术区别,每个人都必须带着除代码以外的东西... - dandavis
http://oldgeeksguide.github.io/presentations/html5devconf2013/wtod.html#/13 - dandavis
我知道浏览器组件,但它不支持HTML5和CSS3;( - Evolve Digital
1
http://softwarerecs.stackexchange.com/questions/14797/can-you-convert-html-css-and-javascript-into-a-exe/14798#14798 - Davidenko
请尝试使用VBsEdit:https://www.vbsedit.com/ - SK-the-Learner
4个回答

6
严格意义上来说,不可以。HTML 主要是为了设计和交换在浏览器中编写的文档而发明的(CSS 则提供此类文档的布局信息)。
尽管如此,现在情况已经不同了。有许多情况下,HTML 和 CSS 被用于浏览器之外的地方(例如 Gnome Shell 是用 CSS 和 Javascript 开发的,或者考虑 Windows 8 上的 Modern UI 应用程序)。
因此,如果你考虑 Windows 8,就有可能在浏览器之外创建一个应用程序;但从技术上讲,它并不是一个 .exe ,不是可执行文件。
另一种可能性是利用 WebBrowser Class,它允许你编写一个 .exe 程序,使用你的 HTML 和 CSS。
因此,可以将 HTML 嵌入可执行文件中,但不能使其本身成为可执行文件。因为 HTML 是文档/标记语言,不是编程语言,无法转换为运行代码。

2
请注意,Firefox本身的用户界面基本上是以这种方式编写的。已经有一段时间了。当然,Firefox有一个方便的HTML渲染引擎... - jpaugh
谢谢!除此之外,我在考虑实现一个浏览器来读取HTML、CSS、JavaScript等内容。在Visual Studio中,WebBrowser工具包已经过时了。我正在寻找HTML5和CSS3支持! - Evolve Digital
为什么无法将HTML编译成机器码?大多数“标记”都有相应的“在屏幕上绘制”的等效物,应该相对容易编译成本地代码。我认为JavaScript很难编译成x86代码;它太动态了。 - Ira Baxter
2
事实上,你并不是将HTML编译为机器码,而是编写一个能够呈现HTML的机器码程序 - 这被称为:浏览器。 - Thomas Junk

3

HTML是一种类似于XML的语言 - 它是解释性的,而不是编译性的。因此,您无法使用HTML创建MS Windows可执行文件(*.exe)。


HTML 技术上基于 SGML,不一定是有效的 XML。 - Thomas Junk
HTML5不是基于XML或SGML的... - dandavis
你绝对是对的。我的意思是HTML与XML相似,而在我看来,XML比SGML更容易识别,这就是为什么我提到它的原因。 - Shocked

3
这里有几个可能的方向,我不能确定你真正想要什么。
  1. 如果您有一个静态HTML网站,可以从本地磁盘加载到任何Web浏览器中。这正是所有主要浏览器中“保存为完整网页”功能的工作原理。甚至可以将其放在CD / DVD上,并使Windows的自动运行功能自动在Web浏览器中加载它。这种方法(或某些变体)可能是您想要的。

  2. 如果它是一个非平凡的Web应用程序,则已经是一个可执行文件,尽管在服务器上而不是客户端上。(我假设这不是情况)。由于显而易见的原因,这不容易转换为桌面应用程序。

  3. 如果您想通过HTML / CSS制作应用程序的UI,则完全是另一回事。这是达到目的的手段;应用程序是实际产品。但是,这涉及制作一个真正的exe:仍然不能作弊。

  4. 所以,好吧。尽管上面声称“不作弊”,但是使用Javascript作为编程语言构建应用程序是可能的。在这种情况下,它是一个“可执行文件”,但并不是真正的.exe:它是一个.js文件。您需要一个独立的Javascript解释器。但是,这并不一定涉及任何HTML或CSS:Javascript本身就是一种编程语言,就像其他应用程序构建的语言一样。

因此,HTML不是严格放入可执行文件中以供观看。虽然在技术上是可能的,但也是不可行的:已经存在更好的解决方案。例如,您如何证明选择集成哪个浏览器?您会强制每个用户使用您的exe浏览器而不是他们喜欢的浏览器吗?

1
这是一个常见的误解。HTML是一种标记语言,这意味着它必须由能够显示HTML编码的实际可视化效果的引擎进行解释。
不能简单地将HTML、CSS和JavaScript编译成可执行文件。这些只是脚本、样式和标记语言,必须由引擎解释(在许多情况下是可执行的)。
在Visual Studio 2010中,您可以创建一个带有WebView元素的简单窗口,并且可以用自定义HTML填充此元素,并注入JS等。这在这里更详细地描述: http://blogs.msdn.com/b/wsdevsol/archive/2012/10/18/nine-things-you-need-to-know-about-webview.aspx 最后,您可能会想到Visual Studio 2013,它允许您使用JavaScript。
JavaScript是Visual Studio 2013中的一流语言。在Visual Studio IDE中编写JavaScript代码时,您可以使用大多数或所有标准编辑辅助工具(代码段、IntelliSense等)。您可以在Visual Studio中为Windows Store应用程序和Web应用程序编写JavaScript代码。
但请记住,您的所有JavaScript代码都会编译成CLR(公共语言运行时),可以在此处了解更多信息:http://en.wikipedia.org/wiki/Common_Language_Runtime

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