| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 | /***	createname:雨中磐石*	homeurl:http://www.rockoa.com/*	Copyright (c) 2016 rainrock (xh829.com)*	Date:2016-01-01*/var nwjs={	init:function(){		this.nw = nwjsgui;		if(!this.nw)return;		this.fs  = require('fs');		this.win = nwjsgui.Window.get();	},	serverdata:function(str){			},	createtray:function(tls, lx){		if(!this.nw)return;		var icon = 'images/logo.png';		if(lx==0)icon='images/logo_hui.png';		var tray = new nwjsgui.Tray({ title:tls, icon: icon});		tray.tooltip = tls;		var menu = new nwjsgui.Menu();		menu.append(new nwjsgui.MenuItem({label: '打开窗口',click:function(){			nwjs.winshow();		}}));		this.closebool = false;		menu.append(new nwjsgui.MenuItem({label: '退出',click:function(){			nwjs.closebool = true;			try{bodyunload();js.onunload();}catch(e){}			nw.App.quit();		}}));				tray.menu 	= menu;				tray.on('click',function(){			nwjs.winshow();		});				this.tray = tray;				this.win.removeAllListeners('close');		this.win.on('close',function(){			if(nwjs.closebool){				try{bodyunload();js.onunload();}catch(e){}				nw.App.quit();				//nw.Window.get().close(true);			}else{				nwjs.win.hide();			}		});				if(lx==0)return;		var kjj=js.getoption('kuaijj','Q');		this.addShortcut(kjj);		this.addfile();		var llq = navigator.userAgent.toLowerCase();		try{if(llq.indexOf('windows nt 5')<0)this.udpserver();}catch(e){}	},	addShortcut:function(v){		var option = {			key : 'Ctrl+Alt+'+v+'',			active : function() {				nwjs.changewinhide();			}		};		this.shortcut = new nwjsgui.Shortcut(option);		nwjsgui.App.unregisterGlobalHotKey(this.shortcut);		nwjsgui.App.registerGlobalHotKey(this.shortcut);	},	changekuai:function(o1){		var val=o1.value;		this.addShortcut(val);		js.setoption('kuaijj',val);	},	removetray:function(){		if(!this.nw)return;		if(this.tray)this.tray.remove();		this.win.removeAllListeners('close');		if(this.shortcut)nwjsgui.App.unregisterGlobalHotKey(this.shortcut);		this.closeserver();		this.tray = false;		this.shortcut = false;	},	changewinhide:function(){		if(windowfocus){			this.win.hide();		}else{			this.winshow();		}	},	runcmd:function(cmd){		if(!this.nw)return;		if(!this.execcmd)this.execcmd= require('child_process').exec;		this.execcmd(cmd);	},	openurl:function(url){		this.runcmd(''+this.getpath()+'/images/start.bat '+url+'');	},	editoffice:function(cstr){		this.runcmd(''+this.getpath()+'/images/rockoffice.exe '+cstr+'');	},	winshow:function(){		if(!this.nw){			window.focus();			return;		}		this.win.show();		this.win.focus();	},	jumpicon:function(oi,bo){		if(!this.tray)return;		clearTimeout(this.jumptime);		var s=this.changeicon(this.wdshu,true);		if(oi==1)s='images/logo_none.png';		this.tray.icon = s;		oi = (oi==1)?0:1;		if(!bo)this.jumptime=setTimeout('nwjs.jumpicon('+oi+')',500);		if(bo)this.changeicon(this.wdshu);	},	jumpclear:function(){		this.jumpicon(0,true);	},	wdshu:0,	changeicon:function(oi,lx){		if(!this.tray)return;		var s='images/logo.png';		if(oi>0){			s='images/logo_new.png';		}		this.wdshu = oi;		if(lx)return s;		if(!lx)this.tray.icon = s;	},	writeFile:function(path, str){		if(!this.nw)return;		if(!this.fs)this.fs = require('fs');		var oatg = this.getpath();		this.fs.writeFile(''+oatg+'/'+path+'', str,function(err){			if(err){				js.msg('msg','error:'+err+'');			};		});	},	getpath:function(){		if(!this.pathobj)this.pathobj = require('path');		var oatg = this.pathobj.dirname(process.execPath);		oatg	 = oatg.replace(/\\/g, '/');		return oatg;		var peiz= nwjsgui.App.manifest;		if(peiz.localpath)return peiz.localpath;		var url = peiz.main;		var las = url.lastIndexOf('\\');		var oatg = url.substr(0, las);		if(oatg.substr(0,5)=='file:')oatg=oatg.substr(7)		return oatg;	},	addfile:function(){		return;		js.ajaxss('down','file',function(ret){			var fs = require("fs");			fs.writeFile('rock.php', jm.base64decode(ret.filecont),  function(err) {				alert(err);			});		});	},	banben:function(o1){		o1.innerHTML='已是最新';	},	getipmac:function(){		var json={ip:'','mac':''};		if(!this.nw)return json;		var os = require('os');		var network = os.networkInterfaces();		for(var a in network){			for(var i = 0; i < network[a].length; i++) {				var json = network[a][i];				if(json.family == 'IPv4') {					json.ip = json.address					break;				}			}			break;		}		return json;	},	closeserver:function(){		if(!this.server)return;		if(this.socketobj)this.socketobj.destroy();		this.server.close();		this.server=false;	},	socketobj:false,	udpserver:function(funarr){		if(!this.nw)return;		var http 	= require('http');		this.server = http.createServer(function(req, res){			var url = req.url.toString(),bstr='ok';			if(url.indexOf('?')>-1){				try{				var urla= url.split('?'),batr= urla[urla.length-1],i,bas1,bst='',bas={},k,v;				var batra = batr.split('&');				for(i=0;i<batra.length;i++){					bas1  = batra[i].split('=');					k 	  = bas1[0]; v = bas1[1]; if(!v)v='';					if(v.indexOf('base64')==0)v=jm.base64decode(v.substr(6));					bas[k]= v;				}				var barr = nwjs.serverdata(bas);				if(typeof(barr)=='object')bas = js.apply(bas, barr);				for(k in bas)bst+=',"'+k+'":"'+bas[k]+'"';				if(bst!='')bst=bst.substr(1);				bstr= '{'+bst+'}';				if(typeof(barr)=='string')bstr = barr;				if(bas.callback)bstr=''+bas.callback+'({'+bst+'})';				}catch(e){}			}			res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});res.write(bstr);res.end();			nwjs.socketobj.destroy();			nwjs.socketobj=false;		});		this.server.on('connection',function(socket){			nwjs.socketobj = socket;		});		this.server.listen(2829,'127.0.0.1',function(){});	},	downfile:function(params){		var cans 	= js.apply({url:'',savefile:'',onsuccess:function(){},onjindu:function(){},onerror:function(){}},params);		var http 	= require('http');		http.get(cans.url, function(res) { 			if(res.statusCode != 200){				cans.onerror('not found');				return;			}			var filesize = res.headers['content-length'];			if(!filesize)filesize = res.headers['accept-length'];			filesize	= parseFloat(filesize);			res.setEncoding('binary');			var str = '';			res.on('data',function(s){				str+=s;				var jd = Math.round(100*str.length/filesize);				cans.onjindu(jd, filesize*jd*0.01);			}).on('end', function(){				nwjs.fs.writeFile(cans.savefile, str, 'binary', function(err){					cans.onsuccess();				});			});		}).on('error', function(e) {			cans.onerror('error');		});	},	createdir:function(path){		var a1 = path.split('/'),spth='';		for(var i=0;i<a1.length-1;i++){			spth+=''+a1[i]+'/';			if(!this.fs.existsSync(spth))this.fs.mkdirSync(spth);		}	},	filetobase64:function(path){		var data = this.fs.readFileSync(path);  		data = new Buffer(data).toString('base64');		//this.fs.writeFileSync(path, data);		return data;	}};
 |