javascript代码实例教程-(nodejs兄弟)用HTML + FLASH +JS 也可以写桌面EXE。

发布时间:2019-02-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-(nodejs兄弟)用HTML + FLASH +JS 也可以写桌面EXE。脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 首先看下面这张图片,下面的所有界面都是用htML代码实现的。

 

编程IDE:vb6.0

 

使用控件:WEBbrOWSER

 

原理:使用Olelib 让程序继承:IDocHostUIHandler 和 ICustomDoc接口 实现对window.external的重写。

 

 

 

接下来展示一下基本的API接口。【】

 

复制代码

VAR C_System = function () {

    this.UI = {

        ReloadApp: function () {/*全部重新载入程序*/ },

        DragForm: function (FormName) {/*拖动窗体*/ },

        HideForm: function (FormName) {/*隐藏窗体*/ },

        ShowForm: function (FormName) {/*显示窗体*/ },

        SetWidth: function (FormName, v) {/*设置主窗体度*/ },

        GetWidth: function (FormName) {/*获得主窗体宽度*/ },

        SetHeight: function (FormName, v) {/*设置主窗体高度*/ },

        GetHeight: function (FormName) {/*获得主窗体高度*/ },

        GetScreenWidth: function () {/*获得屏幕宽度*/ },

        GetScreenHeight: function () {/*获得屏幕高度*/ },

        SetFormState: function (FormName, v) {/*设置窗体状态*/ },

        GetFormstate: function (FormName) {/*获得窗体状态*/ },

        GetFormHwnd: function (FormName) {/*获得窗体句柄*/ },

        VB_Load: function (FormName) {/**/ },

        VB_Unload: function (FormName) { },

        VB_End: function () { }

    };

    this.API = {

        CallApiByName: function (libName, PRocName, pa) { }

    };

    this.Net = {

        GetNewXMLHTTP: function () { },

        GetNewServerXMLHTTP:function(){},

        GetNewWinHTTP: function () { },

        geTclipimg: function () { }

    };

 

    this.CRC = {

        FileChecksum: function (文件路径) { },

        StringChecksum:function(被加密的字符串){}

 

    };

    this.S_Debug = function (被调试的对象) { };

    this.ISIDEmode = function () { /*判断是不是在IDE环境*/ };

    this.oPEnUrl = function (str) {/*打开网址*/ }

};

System = new C_System();

 

System = window.external;//获得VB6.0程序中的交互对象。

复制代码

甚至可以用js来调用系统底层API

 

           var hwnd = System.UI.GetFormHwnd("FrmMain");

            System.API.CallApiByName("user32", "SetWindowLongA", hwnd, -20, 524288);

            System.API.CallApiByName("user32", "SetLayeredWindowAttributes", hwnd, 16711935, 255, 3);

实际在vb6.0中的执行代码为:

 

复制代码

Public Function CallApiByName(ByVal libName As String, ProcName As String, ParamArray Params()) As Long

        Dim hProc As Long

        Dim hModule As Long

         

        ReDim m_OpCode(400 + 6 * UBound(Params))

        hModule = LoadLibrary(ByVal libName)

        If hModule = 0 Then

                MsgBox "Library读取失败!"

                ExIT Function

        End If

         

        hProc = GetProCADdress(hModule, ByVal ProcName)

        If hProc = 0 Then

                MsgBox "函数读取失败!", vbCritical

                FreeLibrary hModule

                Exit Function

        End If

         

        CallApiByName = CallWindowProc(GetCodeStart(hProc, Params), 0, 1, 2, 3)

         

        FreeLibrary hModule

End Function

复制代码

引擎用System.Net.GetNewWinHTTP()【并非.net运行库的System 相当于自己编写的运行库】来实现获取一个新的WINHTTP对象实现跨域的网络访问和对Cookie的完整控制。

 

 

 

当然这样还是不够的。

 

接下来我打算自己做一个IDE和运行库。内置Python 和Lua双引擎的支持 或许也可以支持.NET的JIT

 

使用webkit + GOOGLE的V8引擎【来自chromium码】的基础上修改。

 

同样是通过重写window.external 在 【Chromium源码的regerer项目】external_extension.cc文件里面可以实现对external的重写。

 

大家可能了解过NODEJS 可以通过js来写服务器端代码,用JS写客户端代码也是可以实现的。

 

这样的一个运行库加起来是不到30MB的。可以实现比.net更强大的功能。

 

界面方面:

 

  1.直接支持了html5及以下版本,支持css3及以下版本,可以内置Flash支持。大幅度提升项目周期

 

功能方面:

 

  1.支持直接用js调用lua Python 和 DIY的API。

 

  2.调用底层API。包括:调用GDI绘图 多线程控制 数据库访问等等

 

  3.离线运行。

 

  4.应用商店,可以方便的在线安装新APP。

 

兼容性:

 

  每一个程序直接支持Windows Linux MAC IOS(Ihone) andROId WP等主流脑和手机操作系统。无需单独为每一个系统单独开发。

 

文件大小优势:

 

  由于支持离线运行,每一个程序相当于都是在线安装到本地后运行的。每一个APP一般不会超过1MB。

 

IDE优势:

 

  毫无疑问,JS是大部分程序员最喜欢的编程语言,js跟c++ C#  delphi JAVA的区别就是 js 一直被当作弱语言来对待。没有假设于平台上的运行库。 C# VB.NET就是使用.NET运行库 ,易语言 跟 delphi都有自己的运行库来实现对系统底层的访问。 在nodejs获得巨大成功后,我们可以这么想。

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-(nodejs兄弟)用HTML + FLASH +JS 也可以写桌面EXE。全部内容,希望文章能够帮你解决javascript代码实例教程-(nodejs兄弟)用HTML + FLASH +JS 也可以写桌面EXE。所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。