【工具】USB Redirector软件的辅助工具

By the100s at 2022-04-11 • 0人收藏 • 258人看过

USB Redirector是一款usb设备共享工具,它可以把usb设备共享给局域网的其它电脑使用,使用时发现其缺点是不能主动停止共享导致键鼠共享状态在本机无法再使用,此辅助工具的作用就是当客户机电脑关机后,辅助工具主动停止共享,当客户机开机后又主动共享设备。


QQ截图20220411200844.jpg

QQ截图20220411202005.jpg

import win.ui;
/*DSG{{*/
mainForm = win.form(text="USBredirect辅助工具";right=546;bottom=591)
mainForm.add(
btnDisable={cls="button";text="禁用定时器";left=439;top=258;right=526;bottom=293;z=5};
btnEnable={cls="button";text="启用定时器";left=7;top=258;right=418;bottom=293;z=2};
button={cls="button";text="列出客户";left=17;top=309;right=120;bottom=334;z=10};
button2={cls="button";text="列出设备";left=130;top=309;right=233;bottom=334;z=11};
cip={cls="edit";text="DESKTOP-AU809GM";left=169;top=154;right=536;bottom=226;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=4};
dev={cls="edit";text=' "USB Keyboard"';left=171;top=13;right=536;bottom=148;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=3};
edit={cls="edit";left=12;top=337;right=536;bottom=579;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=1};
lbIntervalMax={cls="static";text="间隔5000毫秒";left=419;top=241;right=526;bottom=255;align="right";transparent=1;z=9};
lbIntervalMin={cls="static";text="间隔500毫秒";left=12;top=240;right=115;bottom=255;transparent=1;z=8};
static={cls="static";text="计划共享的usb设备:
(多个设备一行一个)";left=17;top=11;right=161;bottom=48;font=LOGFONT(h=-14);transparent=1;z=12};
static2={cls="static";text="指定客户上线时共享:";left=11;top=154;right=155;bottom=191;font=LOGFONT(h=-14);transparent=1;z=7};
trackbar={cls="trackbar";left=89;top=227;right=446;bottom=257;max=5000;min=500;z=6}
)
/*}}*/

import process.popen;
/*
if(_ARGV.opt){
	mainForm.edit.print(_ARGV.opt,_ARGV[#_ARGV]);
}
*/
import fsys.config;
config = fsys.config("/config/");
var shared=false  //变量,防止重复执行分享设备指令
var unshared=false //变量,防止重复执行终止分享设备指令


//将窗口控件绑定到配置文件 config.mainForm
mainForm.bindConfig( config.mainForm,{
    edit = "text";
} );

//列出客户按钮
mainForm.button.oncommand = function(id,event){

			var prcs = process.popen("\res\usbrdrsh.exe","-list clients"); 
			//自进程获取输入数据
			var out1=prcs.read(-1);
			var ck=string.indexOf(out1,mainForm.cip.text);			
			mainForm.edit.text = out1 +'\n\r' + tostring(ck)
			mainForm.edit.print("")	
			prcs.close(); 
}

//列出设备按钮
mainForm.button2.oncommand = function(id,event){
var prcs = process.popen("\res\usbrdrsh.exe","-list"); 
			//自进程获取输入数据
			var out1=prcs.read(-1);
			mainForm.edit.text = out1
			mainForm.edit.print("")	
}
import win.timer
var timer = win.timer( mainForm );
//定时器函数,功能是不断检查有没有客户端上线,有则分享USB设备;无则回收已分享的USB设备
timer.onTimer = function(hwnd,msg,id,tick){
		var prcs = process.popen("\res\usbrdrsh.exe","-list clients"); 
			//自进程获取输入数据
			var out1=prcs.read(-1);
			var ck=string.indexOf(out1,mainForm.cip.text);			
			mainForm.edit.text = out1 //+'\n\r' + tostring(ck)
			mainForm.edit.print("定时器运行中。。。")
			if(ck and shared=false){
				for line in mainForm.dev.lines(true){ 
var prcs = process.popen("\res\usbrdrsh.exe","-share "+ line); 
	shared=true		
			//自进程获取输入数据
			var out2=prcs.read(-1);
				mainForm.edit.print(out2)
				}
			}elseif(ck=false and unshared=false) {//客户离线停止分享设备
			
				for line in mainForm.dev.lines(true){ 
var prcs = process.popen("\res\usbrdrsh.exe","-unshare "+ line); 
unshared=true
			var out2=prcs.read(-1);
				mainForm.edit.print(out2)
				}
			
			}
			
			prcs.close(); 
	
} 

mainForm.btnDisable.oncommand = function(id,event){
    timer.disable()
shared=false  //变量,防止重复执行分享设备指令
unshared=false //变量,防止重复执行终止分享设备指令
mainForm.edit.text="定时器已经终止"
} 

mainForm.btnEnable.oncommand = function(id,event){
    timer.enable();
}
 
mainForm.trackbar.setFrequency(1500)
mainForm.trackbar.oncommand = function(id,event,pos){
	if( pos ){
		 timer.setInterval(pos) 
	}
}

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


USBredirect辅助工具工程源码.zip

代码逻辑不咋的严谨,仅供参考学习。

3 个回复 | 最后更新于 2022-04-12
2022-04-12   #1

点赞

不管代码写的好不好

能分享就值得点赞

写的都是用了心..

2022-04-12   #2

感谢分享,话说这个usb共享貌似主要用来给软件的usb「加密狗」一台享多台用的

2022-04-12   #3

回复#2 @笑口常 :

这软件它不是只能把USB设备分享给某台电脑独占方式使用吗?它要是能一分二那才厉害

登录后方可回帖

登 录
信息栏
公告:
个人博客
专注分享
可在分享中适当提问
谢绝纯提问
否则不再提醒一律
删帖
谢谢合作!



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

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

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