node-webkit开发IM持续踩坑日志(一)

一、更换图标

// package.json

{
	"main": "app/index.html",
	"name": "faith",
	"version": "0.1.0",
	"window": {
		"title": "node-webkit demo",
		"icon": "logo.png",
	}
}
// #图片必须是128*128,不然会毫无反应。

二、截图功能

思路是利用第三方截图软件,点击按钮调用node执行exe文件

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title></title>
</head>
<body style="width: 100%;height: 100%;background: #ccc;padding: 0;margin: 0;">
	<script type="text/javascript">
		// node执行第三方截图工具
		const exec = require('child_process').execFile;// 执行exe文件
		const path = require('path');
		//获取截图exe文件执行目录
		const pathUrl = `${path.dirname(process.execPath)}\\public\\ScreenCapture.exe`;
		function jietu(){
			exec(pathUrl, function(err, data) {
				if (err) { 
					console.log(err)
				} 
				console.log(data.toString()); 
			}); 
		}
	</script>
	<button onclick="jietu()">点击截图</button>
</body>
</html>

传送门 ~ ~ ~
ScreenCapture.exe

三、右键点击自定义菜单

<script type="text/javascript">
	// 创建一个空菜单
	
	var menu = new nw.Menu();
	// 添加菜单项
	menu.append(new nw.MenuItem({
	  label: '项 A',
	  click: function(){
	    alert('You have clicked at "项 A"');
	  }
	}));
	menu.append(new nw.MenuItem({ label: '项 B' }));
	menu.append(new nw.MenuItem({ type: 'separator' }));
	menu.append(new nw.MenuItem({ label: '项 C' }));
	
	// 监听事件
	document.body.addEventListener('contextmenu', function(ev) {
	  // 阻止显示默认菜单
	  ev.preventDefault();
	  // 点击处弹出定义的菜单对象
	  menu.popup(ev.x, ev.y);
	
	  return false;
	}, false);

</script>

四、全局快捷 ( 老板 ) 键

<script type="text/javascript">
	//获取当前窗口
	const win = nw.Window.get();
	// 注册老板键
	const optionKey = 'Ctrl+Alt+Z';
	let IsWindowApp = true; // 当前窗口是否处于显示状态
	
	const option = {
		key:optionKey,
		active:function(){
			console.log("全局快捷键: " + this.key + " 被激活."); 
			IsWindowApp ? win.minimize() : win.restore();
			IsWindowApp = !IsWindowApp
		},
		failed:function(err){
			console.log(err);
		}
	}
	
	// 使用 |option| 注册快捷键
	const shortcut = new nw.Shortcut(option);
	
	// 注册全快捷键 即使无聚焦也可工作
	nw.App.registerGlobalHotKey(shortcut);
</script>

更多快捷键,请看传送门 ~ ~ ~

欢迎加QQ:654410585一起踩坑呀!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值