Board logo

标题: [问题求助] 【己解决】VBS能否一键切换 提高鼠标指针精确度 选项 [打印本页]

作者: BAT1    时间: 2015-4-18 14:49     标题: 【己解决】VBS能否一键切换 提高鼠标指针精确度 选项

本帖最后由 BAT1 于 2015-4-20 15:10 编辑

在打CS或者CF的时候,需要把 “提高鼠标指针精确度” 选项关闭,玩其他游戏时又要再次开启。
开启的操作步骤为:
1开始菜单——2设置——3控制面版——4鼠标——5指针选项——6提高指针精确度——7确定
这操作步骤太过于烦索了。

我想在桌面放一个快捷方式,
双击就关闭 “提高指针精确度”,并弹出一个“提高指针精确度”是处于什么状态的提示框。
再双击就反过来......

或者放两个快捷方式,
双击一个就开启指针精确度,双击另一个就关闭指针精确度。

不知能否实现?
作者: yu2n    时间: 2015-4-18 20:35

本帖最后由 yu2n 于 2015-4-18 20:47 编辑

'VBS 设置鼠标指针精确度(5秒内) By yu2n
'Win7 x64 测试通过
  1. 'VBS 设置鼠标指针精确度(5秒内) By yu2n
  2. 'Win7 x64 测试通过
  3. Const sTitle = "鼠标 属性"  ' 查找窗口名称
  4. Const nTimeOut = 5          ' 指定超时时间
  5. Dim wso
  6. Set wso = CreateObject("WScript.Shell")
  7. ' 打开鼠标控制面板
  8. wso.Run "control.exe main.cpl"
  9. Dim dtStart, bFind
  10. dtStart = Now()
  11. Do While DateDiff("s", dtStart, Now()) < nTimeOut
  12.   WScript.Sleep 200
  13.   If CreateObject("WScript.Shell").Appactivate(sTitle) Then
  14.     bFind = True  ' 做标记-已找到
  15.     Exit Do
  16.   End If
  17. Loop
  18. If bFind Then
  19.   ' 发送按键
  20.   wso.SendKeys "(^{TAB})"
  21.   WScript.Sleep 200
  22.   wso.SendKeys "(^{TAB})"
  23.   WScript.Sleep 200
  24.   wso.SendKeys "(%E)"
  25.   WScript.Sleep 200
  26.   wso.SendKeys "(%A)"
  27.   WScript.Sleep 1500
  28.   wso.SendKeys "{ESC}"
  29.   WScript.Sleep 200
  30.   wso.Popup  "完成!耗时 " & DateDiff("s", dtStart, Now()) _
  31.     & " 秒。" & String(3,vbTab), 3, WScript.ScriptName, vbSystemModal+vbInformation
  32. Else
  33.   wso.Popup "无法打开[" & sTitle & "]选项卡!耗时 " & DateDiff("s", dtStart, Now()) _
  34.     & " 秒。" & String(3,vbTab), 3, WScript.ScriptName, vbSystemModal+vbCritical
  35. End If
复制代码

作者: BAT1    时间: 2015-4-19 13:21

本帖最后由 BAT1 于 2015-4-19 13:35 编辑

回复二楼
首先我非常感谢你的热心帮助,
其次,我使用XP操作系统,
经过50次测试,这个脚本在选项卡的选择上还存在一点小问题,希望你能再修改一下。
有时候停留在“鼠标键”,
选中“双击速度”,然后“确定”

有时候停留在“指针”,
选中“方案”,然后“确定”

有时候停留在“指针选项”。
选中“提高指针精确度”,然后“确定”(这个才是对的)

我该如何评价你的脚本呢?
作者: yu2n    时间: 2015-4-19 13:46

本帖最后由 yu2n 于 2015-4-19 14:33 编辑

回复 3# BAT1

XP的鼠标指针设置界面与Win7并无差别。

猜测是你的电脑反应速度的问题,亦或是杀毒软件的拦截。

可以自行修改 WScript.Sleep 后面的时间,电脑慢的话,时间要设置长一些。反之,可以设短些。

如果不介意注销、重启系统,可以考虑以下脚本。
  1. '一般精确度.vbs
  2. RegPath = "HKEY_CURRENT_USER\Control Panel\Mouse\"
  3. Set RR = CreateObject("WScript.Shell")
  4. RR.RegWrite RegPath & "MouseSpeed", "0"
  5. RR.RegWrite RegPath & "MouseThreshold1", "0"
  6. RR.RegWrite RegPath & "MouseThreshold2", "0"
复制代码
  1. '提高精确度.vbs
  2. RegPath = "HKEY_CURRENT_USER\Control Panel\Mouse\"
  3. Set RR = CreateObject("WScript.Shell")
  4. RR.RegWrite RegPath & "MouseSpeed", "1"
  5. RR.RegWrite RegPath & "MouseThreshold1", "6"
  6. RR.RegWrite RegPath & "MouseThreshold2", "10"
复制代码

作者: BAT1    时间: 2015-4-20 13:06

本帖最后由 BAT1 于 2015-4-20 13:25 编辑

回复 4# yu2n


    注销?重启? 我介意啊

在修改注册表的时候,可以先结束explorer进程,再重新加载explorer,作用是代替注销。
只是不知道 能否用在鼠标上。
你能不能在修改注册表的脚本后面,补上一段 重新加载explorer的代码?

最后按照这个顺序运行
1、一般精确度
2、CF主程序
3、提高精确度
作者: yu2n    时间: 2015-4-20 14:37

回复 5# BAT1

重新加载explorer,对于鼠标精确度无效。
作者: BAT1    时间: 2015-4-20 15:09

回复 6# yu2n


    好的,那我还是用最开始那个代码吧,把等待时间加长一些。
作者: 9zhmke    时间: 2015-4-21 15:23

在代码里插入对CPU占用和硬盘占用的检测,如果占用量过高则等候一会儿再操作就没问题了。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2