新成员 刚刚做好的修改鼠标滚轮方向的小软件

By h5angj1e at 16 天前 • 0人收藏 • 163人看过
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=391;bottom=415;bgcolor=3355443;border="thin";exmode="toolwindow")
winform.add(
FlipFlopWheel0={cls="button";text="全部正向";left=16;top=368;right=152;bottom=400;bgcolor=3355443;color=13421772;db=1;dl=1;z=2};
FlipFlopWheel1={cls="button";text="全部反向";left=240;top=368;right=376;bottom=400;bgcolor=3355443;color=13421772;db=1;dr=1;z=3};
static={cls="static";text="FlipFlopWheel = 0是正常, = 1是反向";left=16;top=8;right=376;bottom=24;color=13421772;dl=1;dr=1;dt=1;transparent=1;z=4};
treeview={cls="treeview";left=16;top=32;right=376;bottom=352;asel=false;bgcolor=3355443;color=13421772;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;vscroll=1;z=1}
)
/*}}*/

//import console;
import win.reg;
import win.ui.tooltip;


//仅打开已存在的路径,鼠标路径
var mousePath = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID";
var reg = win.reg(mousePath,true); 

//没用上的提示控件
var tooltipCtrl = win.ui.tooltip(winform);

//硬件表,用于渲染上屏
var tb = {};

//注册表对象
var regCtrls = {};

var regInit = function(){
	//硬件记数
	var count = 0;
	winform.treeview.clear();
	//枚举子项、以及子项的所有子项
	reg.enumKey(
		function(
			subKey, /*这是某个子节点(win.reg对象)*/
			keyname/*这是reg子节点的一个子项的名字*/
		){  
			var dp = "Device Parameters";
			if(keyname == dp){
				var valPath = subKey.path + "\" + dp ;
				var val = win.reg(valPath,true);
				if(val.queryValue("FlipFlopWheel") != null){
					count++
					//替换前半部分的路径
					var DriverPath = string.replace(subKey.path,"@" + mousePath,"");
					
					//取滚轮的值,0或1
					var FlipFlopWheel = val.queryValue("FlipFlopWheel");
					
					//保存注册表对象到表用于修改值
					regCtrls[[DriverPath]] = val;
	
					//赋值上屏的表
					tb[[DriverPath]] = {
						"FlipFlopWheel" = FlipFlopWheel;
					}
					
					winform.text = "当前滚轮方向:" + (FlipFlopWheel ? "反向" :"正向");
					winform.text = winform.text + "(" + count +"个鼠标实例)";
				}
			}
		}  
	)	
	winform.treeview.insertTable(tb);
	winform.treeview.expandAll();
}
//初始化的时候上屏
regInit();

import win.dlg.message;
//改注册表的方法
var changeMouseFlipFlopWhee = function(falg){
	for(k,v in regCtrls){
		//改注册表
		v.setDwValue("FlipFlopWheel",falg);
	};
	//提示
	winform.msgOk((falg ?  '完成反向' :'完成正向' )+ ", 重启生效",500);
	//上屏
	regInit();
}

winform.FlipFlopWheel0.oncommand = function(id,event){
	changeMouseFlipFlopWhee(0)
}

winform.FlipFlopWheel1.oncommand = function(id,event){
	changeMouseFlipFlopWhee(1)
}

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


6 个回复 | 最后更新于 15 天前
16 天前   #1

因为注册表的路径总是很难记又难找,所以用万能因为注册表的路径总是很难记又难找,所以用万能的AARDIO写了一个小程序的AARDIO写了一个小程序

16 天前   #2

众所周知,当我们打开任何一个比屏幕大的页面都是手指从上往下抠滚轮,时间久了手腕容易损伤,如果滚轮设置成反向可以明显解决这个问题,一般都是按照网上的教程查看鼠标硬件路径然后在注册表里面修改指定的键值,但是如果鼠标的硬件地址发生了改变,比如换了usb口,就要重设,所以做了这个,但是要重启才能生效,如果有大神能够设置成及时生效就太好了

15 天前   #3

谢谢分享

15 天前   #4

回复#2 @h5angj1e :

设置成反向伤手指啊。。

15 天前   #5

回复#4 @hi_aardio :

伤手指可以换手指,伤手腕得换手

15 天前   #6

还记得老大提供的鼠标左右键互换指令

::User32.SwapMouseButton( !::User32.GetSystemMetrics( 0x17/*_SM_SWAPBUTTON*/ ) )

运行一次换一下,哈哈

登录后方可回帖

登 录
信息栏
公 告:

专注分享

谢绝纯提问

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

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

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