`
smartyidiot
  • 浏览: 18271 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

切换鼠标左右按键引发的思考(批处理、VBS、DynamicWrapper)

 
阅读更多
背景:笔记本有触摸板,老是碰到,经常不小心搞成关闭、撤销等等不想要的操作。于是就安装了触摸版的专用驱动,以便按Fn进行关闭。
问题:最近又喜欢使用左手,结果安装了这个触摸板的驱动,硬是找不到设置鼠标的“切换主次按钮”。咨询官方的回答是“非得卸载掉驱动才行”(不知道这是不是BUG),让人情何以堪。
正常应对:1、换回右手习惯,万事无忧。2、卸载驱动,万事大吉
换位:如果不想呢?是不是有其他方法可以解决?
1、发现修改注册表,结果是必须注销才能够实现更换。
2、使用EXCEL建立宏,使用Windows API直接调用代码:
Private Declare Function SwapMouseButton Lib "user32" (ByVal bSwap As Long) As Long
Private Sub Command1_Click()
SwapMouseButton (1) ' 1-->右手 0-->左手
End Sub

这样的话,每次换鼠标点击一下就可以了,也挺方便的。

问题又发生了,这个触摸板的驱动,每次开机启动的时候,会自动更换成右手习惯,并且且使用功能键Fn+F6禁用后,仍然会自动启用。。。
于是就想起了开机启动,然后调用Fn+F6键。而由于笔记本的Fn键实现是非常困难的,所以调用功能键禁用触摸板的想法直接放弃,只保留了开机启动功能。
这样就简单了,使用啥语言编写一个简单的EXE(调用User32.dll里面的SwapMouseButton函数),开机调用就OK了。

为图省事,直接启动项里添加了快捷方式,结果。。。切换鼠标左右按键在加载触摸板驱动之前被调用,效果没有达到。

直接在简单的EXE里面判断一下触摸板驱动(相应进程存在)加载了就可以了,偶喜欢折腾,还是直接写个批处理吧。
@echo off
title 启动左右键切换程序
set var = 0
:continue
tasklist|find /i "XXXX.exe"
if %errorlevel% == 0 goto yes
set /a var+=1
ping localhost -n 5 > nul
if %var% lss 10 goto continue
:yes
SwapMouse.exe
:no
exit

保存为批处理脚本,搞定!

到这里基本算完成任务了,但是每次启动有一个CMD窗口,看着也不太好,可以使用VBS脚本来替换。只是正常情况下,VBS只能够调用COM组合,直接调用User32.dll并不能够完成任务,还好有人已经写了一个DynaWrap.dll(需要先注册一下regsvr32 DynaWrap.dll,相应的打包RAR,见我的下载)的OCX控件能够帮我们完成相应的功能。

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
  loop
End Sub


'比如要等等XXX进程,可以
WaitProcess "XXX.exe" 

保存为.vbs脚本,然后添加到启动项,算一个结束了。

附件为所有文件
分享到:
评论
1 楼 liuxushneg123 2017-08-24  
少一个左手的EXE

相关推荐

    win7 win10 锁定/解锁任务栏图标脚本 批处理 VBS ps1

    任务栏图标.VBS C:\Program Files\internet explorer\iexplore.exe 任务栏图标.ps1 C:\Program Files\internet explorer\iexplore.exe win7的锁定和解锁是分开的两个vbs。 win10的vbs和ps1效果一样,当任务栏已经...

    VBS控制鼠标和按键的脚本

    在“VBS控制鼠标和按键的脚本”中,我们可以利用VBScript提供的功能来模拟用户对鼠标的点击、移动以及键盘的按键操作。这种技术在自动化测试、系统维护或创建用户自定义工具时非常有用。 首先,我们要了解VBScript...

    Win10中 锁定/解锁任务栏图标脚本 批处理 VBS ps1

    用于锁定/解锁任务栏图标。 适用于win10,win7不能用,使用方法:脚本+程序完整...任务栏图标.VBS C:\Program Files\internet explorer\iexplore.exe 任务栏图标.ps1 C:\Program Files\internet explorer\iexplore.exe

    VBS批处理入门教程

    VBS批处理,全称是Visual Basic Scripting Edition的批处理,是一种基于Windows操作系统环境的脚本语言,它由微软开发并内置在Windows系统中。VBS批处理结合了批处理命令的简单性和VBScript的强大功能,使得用户可以...

    非常全面的批处理和VBS教程和资料

    批处理(Batch)和VBScript(VBS)是两种在Windows操作系统中广泛使用的脚本语言,主要用于自动化执行一系列任务,提高工作效率。以下是对这些技术的详细介绍: 批处理(BAT): 批处理是一种基于DOS(磁盘操作系统...

    按键精灵VBS脚本教程

    按键精灵VBS脚本教程 本教程旨在指导读者学习VBS脚本的基础知识,从基本的"Hello World!"程序开始,逐步深入到变量、数组、函数等高级概念。 变量 在VBS中,变量的命名规则遵循标准的命名规则,且不区分大小写。...

    Vbs与批处理高级教程

    VBS(Visual Basic Script)与批处理是两种在Windows操作系统环境下广泛使用的自动化工具。VBS是一种基于Microsoft Visual Basic的轻量级脚本语言,而批处理则是通过一系列命令行指令来实现任务自动化的方式。这两者...

    vbs模拟鼠标点击

    让vbs通过调用excel模拟鼠标点击的一个案例,目前vbs无法直接控制鼠标,曲线救国!

    vbs键盘鼠标连点器

    vbs键盘鼠标连点器

    按键精灵VBS经典脚本教程

    按键精灵VBS经典脚本教程 本资源摘要信息将详细介绍VBS经典脚本教程的知识点,涵盖VBS脚本的基本概念、VBS脚本的执行机制、VBS脚本在系统安全中的应用等方面的知识点。 一、VBS脚本的基本概念 VBS脚本是基于视窗...

    vbs批量修改文件,bat批处理文件调用执行vbs,并在cmd窗口打印返回.doc

    VBScript批量修改文件、BAT批处理文件调用执行VBScript并在CMD窗口打印返回值 VBScript是一种强大的脚本语言,广泛应用于自动化办公、批量处理文件等领域。 BAT批处理文件则是Windows操作系统中的一种批处理文件...

    安静运行批处理代码.vbs

    安静运行批处理代码.vbs

    QQ自动登陆(批处理)VBS脚本

    vbs登陆脚本,可以实现加密登陆QQ。 安全防盗,另外对于少数喜欢挂Q的朋友可以放在系统启动项里实现开机自动登陆

    批处理调用vbs自我保护模块

    虽说到了windows时代,但dos...这里介绍六种批处理文件,包括批处理窗口隐藏(比较古老了),批处理进程改名,文件保护(对任意文件通用),字符加密,进程保护,双进程保护,我奋战一夜完成,批处理爱好者可以看看。

    批处理中直接执行vbs的方法

    在批处理中,`start`命令用于启动一个新的命令窗口来执行指定的程序或命令,这里的`wscript`是程序名,`-e:vbs`是参数,告诉`wscript.exe`以VBScript引擎来解析文件,`"%~f0"`是当前批处理文件的完整路径。...

    按键精灵VBS脚本实例源码及详解

    ### 按键精灵VBS脚本实例源码及详解 #### 1. 基本例子介绍 在本文档中,我们将详细探讨一个按键精灵VBS脚本的具体实现细节,该脚本主要用于《QQ幻想世界》游戏中的自动打怪功能。通过分析此脚本,我们可以了解如何...

    vbs模拟鼠标键盘范例

    vbs模拟鼠标键盘范例,自动打开记事本,模拟键盘输入,然后模拟鼠标移动,点击,最后自动关闭记事本。

    vbs控制鼠标

    用vbs控制鼠标左键右键中键和双击单击,使用此代码的前提是你的系统上安装了Excel,因为要用到Excel.Application对象

Global site tag (gtag.js) - Google Analytics