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

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

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设备分享给某台电脑独占方式使用吗?它要是能一分二那才厉害

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...