Study:把已有的 Windows GUI 程序运行在 Web 上
如题所述的需求更加明确的描述为,将一个已有的 Win32 GUI 程序在不改动或低改动源代码的前提下运行在浏览器上。实现方法其实不少,其中最为优雅的莫过于,将原来的程序 GUI 部分与业务程序分开,将业务程序编译成 WebAssembly 后单独开发GUI。但这样就需要对源代码进行阅读并重新编译程序,故不可取。
另一个方便的做法是,首先将程序运行在一个虚拟环境里,然后在这个虚拟环境里开一个 VNC Server,用 noVNC 这样的 Web 端 VNC 客户端去连接。上述技术实际上唤作 Application Virtualization
,即应用程序虚拟化。
SourceForge study
开源平台 SourceForge 总结了这篇文章: Compare the Top Application Virtualization Software of 2022。记录了一些优秀的应用虚拟化工具。其中值得研究的有:
- kasm:非常优秀,但不能用于 Windows
- Thinfinity:效果不明,价格高,开发成本高
- Citrix Virtual Apps and Desktops
- Cameyo
- Vmware ThinApp
以上未提到的,多数是与需求相违背、面向云应用不支持本地部署或只能使用特定应用。
Web searching study
此外,还从互联网上了解到以下:
- Winflector:轻量,高可用,但是对于一些图形API性能低或无法运行。