用纯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')
varparseCommand=function(){
dialog.showMessageBox({
title:'错误'
,type:'error'
,message:'此文件没有跟OnceDoc绑定'
})
}
varinitApp=function(){
parseCommand()
}
app.on('ready',initApp)
使用electron运行上面的代码:
electronapp.js
调用VB脚本弹出消息框
Electron的确实比较方便,但是体积比较大,消息弹出比较慢。我们可以通过child_process调用VB脚本弹出消息框。
比如,我们新建一个VB脚本文件,命名为:vb.message.vbs,内容如下:
msgboxWScript.Arguments(1),vbInformation,WScript.Arguments(0)
此脚本会将第一个和第二个参数作为提示框的标题和内容弹出,在Node.JS调用即可:
varcp=require('child_process')
varinitApp=function(){
varvbsPath=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中编写脚本,比如:
varcp=require('child_process')
varinitApp=function(){
cp.exec('mshta"javascript:varsh=newActiveXObject("WScript.Shell");sh.Popup("Message!",10,"Title!",64);close()"')
}
initApp()
除了弹出提示框外,借助vb和activex脚本均可实现一些高级功能,如连接本数据库等。此外借助msg.exe系统进程间通信也可
以实现消息提示框,不过某些系统可能没有安装msg.exe,并且此种方法不能自定义消息标题。
cp.exec('msg%username%"这是什么意思?我不知道"')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。