如何在 Tweak UI 中打开 On/Off X-Mouse?
How Do I Turn On/Off X-Mouse in Tweak UI?
我正在尝试创建一个 VB6 可执行文件(不确定语法是否正确),它将在 Windows 98SE 下的 Tweak UI 中切换 X-Mouse 选项。理想情况下,我想要两个脚本 - 一个将其关闭(无论其状态如何),另一个将其打开(同样,无论其状态如何)。
我已经能够使用下面的代码打开 TweakUI 控制面板。
Private Sub Form_Load()
Call Shell("rundll32.exe shell32.dll,Control_RunDLL tweakui.cpl", vbNormalFocus)
End Sub
如果可能的话,我希望它在不打开 TweakUI 控制面板的情况下执行此操作。
据我所知,更改注册表设置不起作用,因为我必须重新启动计算机才能生效。
我有注册表监视器 7.04 运行。它捕获以下内容:
Path: C:\WINDOWS\RUNDLL32.EXE
Command Line: "C:\WINDOWS\RUNDLL32.EXE" "C:\WINDOWS\SYSTEM\TWEAKUI.CPL", Tweak UI
Other: hKey: 0xC2A066F0
老实说,我不确定如何前进。
不确定显示这方面进展的最佳方式,我将进行编辑。
这段代码非常接近。
Private Declare Function SystemParametersInfo Lib "user32" Alias _
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, _
ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
Const SPI_SETACTIVEWINDOWTRACKING = 4097
'Click on this button to Activate XMouse
Private Sub Command1_Click()
SystemParametersInfo SPI_SETACTIVEWINDOWTRACKING, 0, True, 0
End Sub
'Click on this button to Deactivate XMouse
Private Sub Command2_Click()
SystemParametersInfo SPI_SETACTIVEWINDOWTRACKING, 0, False, 0
End Sub
按钮 1 工作正常并激活 XMouse。但是按钮二并没有关闭它。
SPI_SETACTIVEWINDOWTRACKING 是执行此操作的参数。
systemparametersinfo
是这样获取或设置设置的函数调用。参见 https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfoa
有使用 systemparametersinfo
更改壁纸的示例代码。 https://winsourcecode.blogspot.com/2019/06/changewallpaper.html
感谢您提供的所有信息。我能够解决这个问题。
Private Declare Function SystemParametersInfo Lib "user32" Alias _
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, _
ByVal lpvParam As Boolean, ByVal fuWinIni As Long) As Long
Const SPI_SETACTIVEWINDOWTRACKING = 4097
Private Sub Command1_Click()
retVal = SystemParametersInfo(SPI_SETACTIVEWINDOWTRACKING, 0, True, 0)
End Sub
Private Sub Command2_Click()
retVal = SystemParametersInfo(SPI_SETACTIVEWINDOWTRACKING, 0, False, 0)
End Sub
除了这里的帮助之外,我还偶然发现了一些能够满足我需要的东西。
Control the mouse speed under Windows 98 / 2000
和
Controling Active Window Tracking
有几点值得注意。我必须包括这个,否则什么都不会发生:
Const SPI_SETACTIVEWINDOWTRACKING = 4097
另外,第三个参数是
ByRef lpvParam As Boolean
而不是
ByVal lpvParam As Boolean
我传递的是指向指针的指针而不是指向值的指针
我正在尝试创建一个 VB6 可执行文件(不确定语法是否正确),它将在 Windows 98SE 下的 Tweak UI 中切换 X-Mouse 选项。理想情况下,我想要两个脚本 - 一个将其关闭(无论其状态如何),另一个将其打开(同样,无论其状态如何)。
我已经能够使用下面的代码打开 TweakUI 控制面板。
Private Sub Form_Load()
Call Shell("rundll32.exe shell32.dll,Control_RunDLL tweakui.cpl", vbNormalFocus)
End Sub
如果可能的话,我希望它在不打开 TweakUI 控制面板的情况下执行此操作。
据我所知,更改注册表设置不起作用,因为我必须重新启动计算机才能生效。
我有注册表监视器 7.04 运行。它捕获以下内容:
Path: C:\WINDOWS\RUNDLL32.EXE
Command Line: "C:\WINDOWS\RUNDLL32.EXE" "C:\WINDOWS\SYSTEM\TWEAKUI.CPL", Tweak UI
Other: hKey: 0xC2A066F0
老实说,我不确定如何前进。
不确定显示这方面进展的最佳方式,我将进行编辑。
这段代码非常接近。
Private Declare Function SystemParametersInfo Lib "user32" Alias _
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, _
ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
Const SPI_SETACTIVEWINDOWTRACKING = 4097
'Click on this button to Activate XMouse
Private Sub Command1_Click()
SystemParametersInfo SPI_SETACTIVEWINDOWTRACKING, 0, True, 0
End Sub
'Click on this button to Deactivate XMouse
Private Sub Command2_Click()
SystemParametersInfo SPI_SETACTIVEWINDOWTRACKING, 0, False, 0
End Sub
按钮 1 工作正常并激活 XMouse。但是按钮二并没有关闭它。
SPI_SETACTIVEWINDOWTRACKING 是执行此操作的参数。
systemparametersinfo
是这样获取或设置设置的函数调用。参见 https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-systemparametersinfoa
有使用 systemparametersinfo
更改壁纸的示例代码。 https://winsourcecode.blogspot.com/2019/06/changewallpaper.html
感谢您提供的所有信息。我能够解决这个问题。
Private Declare Function SystemParametersInfo Lib "user32" Alias _
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, _
ByVal lpvParam As Boolean, ByVal fuWinIni As Long) As Long
Const SPI_SETACTIVEWINDOWTRACKING = 4097
Private Sub Command1_Click()
retVal = SystemParametersInfo(SPI_SETACTIVEWINDOWTRACKING, 0, True, 0)
End Sub
Private Sub Command2_Click()
retVal = SystemParametersInfo(SPI_SETACTIVEWINDOWTRACKING, 0, False, 0)
End Sub
除了这里的帮助之外,我还偶然发现了一些能够满足我需要的东西。 Control the mouse speed under Windows 98 / 2000 和 Controling Active Window Tracking
有几点值得注意。我必须包括这个,否则什么都不会发生:
Const SPI_SETACTIVEWINDOWTRACKING = 4097
另外,第三个参数是
ByRef lpvParam As Boolean
而不是
ByVal lpvParam As Boolean
我传递的是指向指针的指针而不是指向值的指针