用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
程序员文章站
2022-06-11 22:29:35
node.js是一个控制台程序,如果想要从node.js弹出windows系统提示框的话,有很多方法可以实现。比如借助 electron 或 node-webkit:
在...
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% "这是什么意思? 我不知道"')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 干货:教你3分钟判断一个网站有没有价值
下一篇: Node.js编写CLI的实例详解