//断网检测 import fonts.fontAwesome; import win.ui; /*DSG{{*/ var winform = win.form(text="检测网络状态";right=759;bottom=469;bgcolor=0xFFFFFF;max=false) winform.add( btnOpenNetworkConnections={cls="button";text="打开网络连接";left=226;top=339;right=463;bottom=398;bgcolor=0xFFFFFF;note="打开 控制面板 / 网卡列表";z=3}; lbStatus={cls="plus";left=249;top=57;right=678;bottom=98;align="left";font=LOGFONT(h=-19);transparent=1;z=2}; plusNetworkStatus={cls="plus";text="网络已连接";left=66;top=57;right=242;bottom=98;align="left";color=32768;disabled=1;font=LOGFONT(h=-19);iconStyle={align="left";font=LOGFONT(h=-27;name='FontAwesome');padding={left=9}};iconText='\uF205';textPadding={left=49};z=1} ) /*}}*/ import wsock.networkChange; wsock.networkChange.wait(winform).onNetworkChanged = function(){ //网络状态变更触发此回调 winform.plusNetworkStatus.checked = wsock.tcp.client.test(); winform.lbStatus.disabledText = {"✶";"✸";"✹";"✺";"✹";"✷";text=' '} winform.lbStatus.onNetworkChanged(); } import inet.ras; import win.debounce; winform.lbStatus.onNetworkChanged = win.debounce( function(){ winform.lbStatus.disabledText = null; /* win.debounce 可以避免短时间内不必要地连续调用此函数。 也可以延时调用 inet.ras.isAlive 以获取刷新后的状态。 */ var wan,lan = inet.ras.isAlive(); if( lan ) winform.lbStatus.text = "已有网卡建立了局域网连接"; else if( wan ) winform.lbStatus.text = "已有网卡建立了广域网连接"; else winform.lbStatus.text = "没有联网"; },1000); winform.plusNetworkStatus.skin({ text="网络已断开"; color = { default = 0xFFFF0000; disabled = 0xFFFF0000; }; checked = { text = "网络已连接"; color = { default = 0xFF008000; }; } }); import process; winform.btnOpenNetworkConnections.oncommand = function(id,event){ process.explore("shell:::{7007ACC7-3202-11D1-AAD2-00805FC1270E}"); } winform.onNetworkChanged(); winform.show(); win.loopMessage();