有人用javascript写桌面程序的吗

JavaScript022

有人用javascript写桌面程序的吗,第1张

通过HTML、CSS、JavaScript来编写本地应用程序。

简单地说就是一个本地客户端应用程序使用一个内置的浏览器内核渲染前端界面,另一方面还可以调用本地系统级API,实现本地应用程序的各种功能。

使用该技术的部分产品:

网易云音乐PC客户端

有道词典PC客户端 (基于heX)

Atom文本编辑器 (基于Electron)

Visual Studio Code编辑器 (基于Electron)

相关技术

C++ / CEF

https://bitbucket.org/chromiumembedded/cef

CEF (Chromium Embedded Framework)

谷歌浏览器嵌入式框架,即谷歌浏览器内核,配合C++使用。

Electron

http://electron.atom.io/

Electron基于Node.js,使用javascript编程。

个人对Node.js的理解

Node.js是一个JavaScript 解释器,是类似Python的东西

Node.js使用JavaScript语言,Python使用Python语言

Node.js常用于编写Web服务器(使用http等模块)

Python也有类似的框架,比如Django

NW.js

NW.js 原名 node-webkit

基于 Chromium 和 Node.js

heX

heX是有道发起的开源项目

基于开源项目 CEF,它内部整合了开源项目 Chromium 及 Node.JS

一般来说直接用Javascript创建的话只支持IE,代码如下:

functionCreateShortcut() { 

    try{ 

        varfso = newActiveXObject("Scripting.FileSystemObject") 

        varshell = newActiveXObject("WScript.Shell") 

        vartagFolder = shell.SpecialFolders("Desktop") 

        if(!fso.FolderExists(tagFolder )) { 

            fso.CreateFolder(tagFolder) 

        } 

        if(!fso.FileExists(tagFolder + "\\乐猪软件.lnk")) { 

            varWshSysEnv = shell.Environment("Process") 

            iLocal = (WshSysEnv.Item("SystemRoot") +"\\1.ico") //下载到C:\windows\1.ico 

            iRemote = ("/Images/2.ico") //先下载图标文件,再用自定义图标把首页的图标地址替换 

            varxPost = newActiveXObject("Microsoft.XMLHTTP") 

            xPost.Open("GET", iRemote, 0) 

            xPost.Send() 

            varsGet = newActiveXObject("ADODB.Stream") 

            sGet.Mode = 3 

            sGet.Type = 1 

            sGet.Open() 

            sGet.Write(xPost.ResponseBody ) 

            sGet.SaveToFile( iLocal,2) 

            varlink = shell.CreateShortcut(tagFolder + "\\编程入门管理系统.lnk") 

            link.Description = "打开基本软件的快捷方式" 

            link.Hotkey = "Ctrl+Alt+e" 

            link.TargetPath = "http://www.lezhu99.com/" 

            link.IconLocation=iLocal 

            link.WindowStyle = 3 

            link.WorkingDirectory = "c:\\blah" 

            link.Save() 

            alert("恭喜!快捷方式创建成功!") 

        } 

    } 

    catch(ex){ 

        alert("快捷方式创建失败,可能浏览器不支持!") 

    } 

}

为了支持所有浏览器,我们可以用动态语言来做。

1.php代码:

<?php 

$Shortcut = "[InternetShortcut] 

URL=http://www.0356sh.com 

IconFile=http://www.0356sh.com/favicon.ico 

IconIndex=0 

HotKey=1613 

IDList= 

[{000214A0-0000-0000-C000-000000000046}] 

Prop3=19,2" 

header("Content-Type: application/octet-stream") 

header("Content-Disposition: attachment filename=晋城生活服务.url") 

echo $Shortcut 

?>

HTML中的代码:

<a href="1.php" target="_blank">创建桌面快捷方式</a>