切换鼠标左右按键引发的思考(批处理、VBS、DynamicWrapper)
背景:笔记本有触摸板,老是碰到,经常不小心搞成关闭、撤销等等不想要的操作。于是就安装了触摸版的专用驱动,以便按Fn进行关闭。
问题:最近又喜欢使用左手,结果安装了这个触摸板的驱动,硬是找不到设置鼠标的“切换主次按钮”。咨询官方的回答是“非得卸载掉驱动才行”(不知道这是不是BUG),让人情何以堪。
正常应对:1、换回右手习惯,万事无忧。2、卸载驱动,万事大吉
换位:如果不想呢?是不是有其他方法可以解决?
1、发现修改注册表,结果是必须注销才能够实现更换。
2、使用EXCEL建立宏,使用Windows API直接调用代码:
Private Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As Long) As LongPrivate Sub Command1_Click()SwapMouseButton (1) ' 1-->右手 0-->左手End Sub
@echo offtitle 启动左右键切换程序set var = 0:continuetasklist|find /i "XXXX.exe"if %errorlevel% == 0 goto yesset /a var+=1ping localhost -n 5 > nulif %var% lss 10 goto continue:yesSwapMouse.exe:noexit
Sub WaitProcess(sProcessName) dim intTimes intTimes = 0 do while intTimes < 5 For each Process in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_process") '利用wmi遍历所有进程 If uCase(Process.Name) = uCase(sProcessName) Then '判断进程名称 Dim UserWarp Set UserWarp =CreateObject("DynamicWrapper") UserWarp.Register "User32.Dll", "SwapMouseButton", "I=l", "f=S","R=l" UserWarp.SwapMouseButton(0) exit do End If Next intTimes =intTimes + 1 Wscript.sleep 1000 loopEnd Sub'比如要等等XXX进程,可以WaitProcess "XXX.exe"