服务器中控台 - 整合多组服务器程序实现一键启动/停止,并保存服务器日志

By jerryxjr1220 at 12 天前 • 0人收藏 • 171人看过

controlcenter.png

贴一下最主要的部分,用process.popen管道实现服务器程序整合,并且不会出现原本的黑窗口。

import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=899;bottom=599;bgcolor=16777215;border="none";mode="popup";sysmenu=false;title=false)
winform.add(
edit={cls="edit";left=14;top=72;right=885;bottom=540;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=1};
plsActive={cls="plus";text="注册服务器";left=9;top=9;right=135;bottom=72;bkBottom=3;bkLeft=7;bkRight=8;bkTop=2;border={color=-65536};dl=1;dt=1;font=LOGFONT(h=-16;name='微软雅黑');iconStyle={font=LOGFONT(h=-27;name='FontAwesome');padding={bottom=20}};iconText='\uF109';notify=1;textPadding={bottom=10};valign="bottom";x=0.5;y=0.2;z=2};
plsAdjustable={cls="plus";text="可调弯服务器";left=261;top=9;right=387;bottom=72;bkBottom=3;bkLeft=7;bkRight=8;bkTop=2;border={color=-65536};dl=1;dt=1;font=LOGFONT(h=-16;name='微软雅黑');iconStyle={font=LOGFONT(h=-27;name='FontAwesome');padding={bottom=20}};iconText='\uF109';notify=1;textPadding={bottom=10};valign="bottom";x=0.5;y=0.2;z=6};
plsEle={cls="plus";text="电极间距服务器";left=513;top=9;right=639;bottom=72;bkBottom=3;bkLeft=7;bkRight=8;bkTop=2;border={color=-65536};dr=1;dt=1;font=LOGFONT(h=-16;name='微软雅黑');iconStyle={font=LOGFONT(h=-27;name='FontAwesome');padding={bottom=20}};iconText='\uF109';notify=1;textPadding={bottom=10};valign="bottom";x=0.5;y=0.2;z=8};
plsHemo={cls="plus";text="止血阀服务器";left=135;top=9;right=261;bottom=72;bkBottom=3;bkLeft=7;bkRight=8;bkTop=2;border={color=-65536};dl=1;dt=1;font=LOGFONT(h=-16;name='微软雅黑');iconStyle={font=LOGFONT(h=-27;name='FontAwesome');padding={bottom=20}};iconText='\uF109';notify=1;textPadding={bottom=10};valign="bottom";x=0.5;y=0.2;z=5};
plsPFA={cls="plus";text="五爪脉冲服务器";left=387;top=9;right=513;bottom=72;bkBottom=3;bkLeft=7;bkRight=8;bkTop=2;border={color=-65536};dl=1;dr=1;dt=1;font=LOGFONT(h=-16;name='微软雅黑');iconStyle={font=LOGFONT(h=-27;name='FontAwesome');padding={bottom=20}};iconText='\uF109';notify=1;textPadding={bottom=10};valign="bottom";x=0.5;y=0.2;z=7};
plsShutdown={cls="plus";text="关闭服务器";left=193;top=548;right=351;bottom=577;db=1;dl=1;font=LOGFONT(h=-16;name='微软雅黑';weight=700);z=4};
plsStart={cls="plus";text="启动服务器";left=18;top=548;right=176;bottom=577;db=1;dl=1;font=LOGFONT(h=-16;name='微软雅黑';weight=700);notify=1;z=3};
plsVisualization={cls="plus";text="可视化服务器";left=639;top=9;right=765;bottom=72;bkBottom=3;bkLeft=7;bkRight=8;bkTop=2;border={color=-65536};dr=1;dt=1;font=LOGFONT(h=-16;name='微软雅黑');iconStyle={font=LOGFONT(h=-27;name='FontAwesome');padding={bottom=20}};iconText='\uF109';notify=1;textPadding={bottom=10};valign="bottom";x=0.5;y=0.2;z=9};
plsVisualization2={cls="plus";text="可视化服务器2";left=765;top=9;right=891;bottom=72;bkBottom=3;bkLeft=7;bkRight=8;bkTop=2;border={color=-65536};dr=1;dt=1;font=LOGFONT(h=-16;name='微软雅黑');iconStyle={font=LOGFONT(h=-27;name='FontAwesome');padding={bottom=20}};iconText='\uF109';notify=1;textPadding={bottom=10};valign="bottom";x=0.5;y=0.2;z=10}
)
/*}}*/

import style;
winform.plsActive.skin(style.subtabs);
winform.plsHemo.skin(style.subtabs);
winform.plsAdjustable.skin(style.subtabs);
winform.plsPFA.skin(style.subtabs);
winform.plsEle.skin(style.subtabs);
winform.plsVisualization.skin(style.subtabs);
winform.plsVisualization2.skin(style.subtabs);
winform.plsStart.skin(style.primaryButton);
winform.plsShutdown.skin(style.primaryButton);



import process;
import process.popen;

import fsys.ini;
ini = fsys.ini("\res\setting.ini");

winform.plsStart.oncommand = function(id,event){

	if winform.plsActive.checked {	
		var path = ini.read("setting","Active");
		var interval = ini.read("setting","Interval");
		if !path return;
		winform.prcsActive, err = process.popen(string.format("%s",path));
		if !winform.prcsActive {
			winform.msgbox( err );
		} else {
			winform.prcsActive.codepage = 65001;
			winform.prcsActive.logResponse(winform.edit, tonumber(interval));
			winform.plsActive.background = 0xFF00DD22;
		}
		sleep(1000);
	}
	
	if winform.plsHemo.checked {	
		var path = ini.read("setting","Hemo");
		var interval = ini.read("setting","Interval");
		if !path return;
		winform.prcsHemo, err = process.popen(string.format("%s",path));
		if !winform.prcsHemo {
			winform.msgbox( err );
		} else {
			winform.prcsHemo.codepage = 65001;
			winform.prcsHemo.logResponse(winform.edit, tonumber(interval));
			winform.plsHemo.background = 0xFF00DD22;
		}
		
	}
	
	if winform.plsAdjustable.checked {	
		var path = ini.read("setting","Adj");
		var interval = ini.read("setting","Interval");
		if !path return;
		winform.prcsAdj, err = process.popen(string.format("%s",path));
		if !winform.prcsAdj {
			winform.msgbox( err );
		} else {
			winform.prcsAdj.codepage = 65001;
			winform.prcsAdj.logResponse(winform.edit, tonumber(interval));
			winform.plsAdjustable.background = 0xFF00DD22;
		}
		
	}
	
	if winform.plsPFA.checked {	
		var path = ini.read("setting","PFA");
		var interval = ini.read("setting","Interval");
		if !path return;
		winform.prcsPFA, err = process.popen(string.format("%s",path));
		if !winform.prcsPFA {
			winform.msgbox( err );
		} else {
			winform.prcsPFA.codepage = 65001;
			winform.prcsPFA.logResponse(winform.edit, tonumber(interval));
			winform.plsPFA.background = 0xFF00DD22;
		}
		
	}
	
	if winform.plsEle.checked {	
		var path = ini.read("setting","Ele");
		var interval = ini.read("setting","Interval");
		if !path return;
		winform.prcsEle, err = process.popen(string.format("%s",path));
		if !winform.prcsEle {
			winform.msgbox( err );
		} else {
			winform.prcsEle.codepage = 65001;
			winform.prcsEle.logResponse(winform.edit, tonumber(interval));
			winform.plsEle.background = 0xFF00DD22;
		}
		
	}
	
	if winform.plsVisualization.checked {	
		var path = ini.read("setting","Visual1");
		var interval = ini.read("setting","Interval");
		if !path return;
		winform.prcsVisual1, err = process.popen(string.format("%s",path));
		if !winform.prcsVisual1 {
			winform.msgbox( err );
		} else {
			winform.prcsVisual1.codepage = 65001;
			winform.prcsVisual1.logResponse(winform.edit, tonumber(interval));
			winform.plsVisualization.background = 0xFF00DD22;
		}
		
	}
	
	if winform.plsVisualization2.checked {	
		var path = ini.read("setting","Visual2");
		var interval = ini.read("setting","Interval");
		if !path return;
		winform.prcsVisual2, err = process.popen(string.format("%s",path));
		if !winform.prcsVisual2 {
			winform.msgbox( err );
		} else {
			winform.prcsVisual2.codepage = 65001;
			winform.prcsVisual2.logResponse(winform.edit, tonumber(interval));
			winform.plsVisualization2.background = 0xFF00DD22;
		}
		
	}
}

winform.plsShutdown.oncommand = function(id,event){

	if winform.plsActive.checked {
		try {
			winform.prcsActive.terminate();
		}catch(e){};
		winform.edit.print( "注册服务器已关闭");
		winform.plsActive.background = 0xFF00579b;
		winform.plsActive.checked=false;
	}
	if winform.plsHemo.checked {
		try {
			winform.prcsHemo.terminate();
		}catch(e){};
		winform.edit.print( "止血阀服务器已关闭");
		winform.plsHemo.background = 0xFF00579b;
		winform.plsHemo.checked=false;
	}
	if winform.plsAdjustable.checked {
		try {
			winform.prcsAdj.terminate();
		}catch(e){};
		winform.edit.print( "可调弯服务器已关闭");
		winform.plsAdjustable.background = 0xFF00579b;
		winform.plsAdjustable.checked=false;
	}
	if winform.plsPFA.checked {
		try {
			winform.prcsPFA.terminate();
		}catch(e){};
		winform.edit.print( "五爪脉冲服务器已关闭");
		winform.plsPFA.background = 0xFF00579b;
		winform.plsPFA.checked=false;
	}
	if winform.plsEle.checked {
		try {
			winform.prcsEle.terminate();
		}catch(e){};
		winform.edit.print( "电极间距服务器已关闭");
		winform.plsEle.background = 0xFF00579b;
		winform.plsEle.checked=false;
	}
	if winform.plsVisualization.checked {
		try {
			winform.prcsVisual1.terminate();
		}catch(e){};
		winform.edit.print( "可视化服务器1已关闭");
		winform.plsVisualization.background = 0xFF00579b;
		winform.plsVisualization.checked=false;
	}
	if winform.plsVisualization2.checked {
		try {
			winform.prcsVisual2.terminate();
		}catch(e){};
		winform.edit.print( "可视化服务器2已关闭");
		winform.plsVisualization2.background = 0xFF00579b;
		winform.plsVisualization2.checked=false;
	}
	
}


winform.show();
win.loopMessage();
return winform;


4 个回复 | 最后更新于 8 天前
12 天前   #1

其中“注册服务器”会先启动,然后延时1秒,再启动其他服务器,因为其他服务器启动时会先去注册服务器对比版本信息并获取授权。

11 天前   #2

新年贴( ー̀εー́ ),感谢分享

11 天前   #3

辛苦了,放假了还在研究...

8 天前   #4

祝新年快乐,万事如意!

登录后方可回帖

登 录
信息栏
公 告:

专注分享

谢绝纯提问

谢谢合作!
本站域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
打赏本站
Loading...