用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)

 更新时间:2017年05月17日 10:29:03   作者:kris  
这篇文章主要介绍了用纯Node.JS弹出Windows系统消息提示框实例(MessageBox),非常具有实用价值,需要的朋友可以参考下

Node.JS是一个控制台程序,如果想要从Node.JS弹出Windows系统提示框的话,有很多方法可以实现。比如借助 electron 或 node-webkit:

在Electron中弹出消息框

Electron与Windows的接口非常完善,可以调用各种Window原生机制,如创建系统托盘图标。打开文件夹选择框等。这里使用dialog,即可弹出系统消息提示框:

const {
  app
 , BrowserWindow
 , Menu
 , Tray
 , shell
 , dialog
 , ipcMain
} = require('electron')

var parseCommand = function() {
 dialog.showMessageBox({
   title  : '错误'
  , type  : 'error'
  , message : '此文件没有跟 OnceDoc 绑定'
 })
}

var initApp = function() {
 parseCommand()
}

app.on('ready', initApp)

使用electron运行上面的代码:

electron app.js

调用VB脚本弹出消息框

Electron的确实比较方便,但是体积比较大,消息弹出比较慢。我们可以通过child_process调用VB脚本弹出消息框。

比如,我们新建一个 VB 脚本文件,命名为: vb.message.vbs,内容如下:

msgbox WScript.Arguments(1), vbInformation, WScript.Arguments(0)

此脚本会将第一个和第二个参数作为提示框的标题和内容弹出,在Node.JS调用即可:

var cp  = require('child_process')

var initApp = function() {
 var vbsPath = path.join(__dirname, 'vb.message.vbs')

 cp.exec('cscript.exe ' + vbsPath + ' "提示" "此文件没有跟 OnceDoc 绑定"', function(err, stdout, stderr) {
  if (err) {
   fs.writeFileSync('log.log', err.toString())
  }
 })
}

initApp()

使用ActiveXObject弹出消息框

VB脚本需要创建额外的文件,使用ActiveXObject则直接在Node.JS中编写脚本,比如:

var cp  = require('child_process')
var initApp = function() {
 cp.exec('mshta "javascript:var sh=new ActiveXObject("WScript.Shell"); sh.Popup("Message!", 10, "Title!", 64 );close()"')
}

initApp()

除了弹出提示框外,借助vb和activex脚本均可实现一些高级功能,如连接本数据库等。此外借助msg.exe系统进程间通信也可

以实现消息提示框,不过某些系统可能没有安装msg.exe,并且此种方法不能自定义消息标题。

cp.exec('msg %username% "这是什么意思? 我不知道"')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • node.js连接mongoose数据库方法详解

    node.js连接mongoose数据库方法详解

    之前我们都是通过shell来完成对数据库的各种操作的,在开发中大部分时候我们都需要通过程序来完成对数据库的操作。而Mongoose就是一个让我们可以通过Node来操作MongoDB的模块
    2022-08-08
  • NodeJS模块与ES6模块系统语法及注意点详解

    NodeJS模块与ES6模块系统语法及注意点详解

    这篇文章主要给大家介绍了关于NodeJS模块与ES6模块系统语法及注意点的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • node.js中的fs.readdirSync方法使用说明

    node.js中的fs.readdirSync方法使用说明

    这篇文章主要介绍了node.js中的fs.readdirSync方法使用说明,本文介绍了fs.readdirSync方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • node.js中的定时器nextTick()和setImmediate()区别分析

    node.js中的定时器nextTick()和setImmediate()区别分析

    本文介绍了node.js中的定时器nextTick()和setImmediate()的区别分析,非常的不错,这里推荐给大家。
    2014-11-11
  • 修改npm全局安装模式的路径方法

    修改npm全局安装模式的路径方法

    今天小编就为大家分享一篇修改npm全局安装模式的路径方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 手把手带你安装多个node版本

    手把手带你安装多个node版本

    在项目开发过程中,不同项目使用的node版本不同,有时会因为node版本过高或太低,导致报错,下面这篇文章主要给大家介绍了关于安装多个node版本的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 我用的一些Node.js开发工具、开发包、框架等总结

    我用的一些Node.js开发工具、开发包、框架等总结

    这篇文章主要介绍了我个人使用的一些Node.js开发工具、开发包、框架等总结,需要的朋友可以参考下
    2014-09-09
  • node.js 实现手机号验证码登录功能

    node.js 实现手机号验证码登录功能

    这篇文章主要介绍了node.js 实现手机号验证码登录功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 解决node-sass偶尔安装失败的方法小结

    解决node-sass偶尔安装失败的方法小结

    这篇文章主要介绍了解决node-sass偶尔安装失败的方法小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 基于Node.js的http模块搭建HTTP服务器

    基于Node.js的http模块搭建HTTP服务器

    这篇文章主要为大家介绍了基于Node.js的http模块来搭建HTTP服务器的示例过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-02-02

最新评论