我在重复另一个论坛的问题,因为我想得到同样的答案。
来自MSDN的SwapMouseButton Function。
如何通过rundll32.exe将布尔数据从命令提示符传递到从user32.dll运行的命令中的布尔类型参数?
我正试图从CMD(命令提示符)运行此命令
RUNDLL32.EXE user32.dll,SwapMouseButton *
星号在这里的地方是参数应该去的地方。我已经在没有参数的情况下运行了它,它交换了我的鼠标左键和右键(似乎TRUE是布尔参数的默认条目)。现在我想撤销它。然而,我已经尝试了在参数中传递FALSE的每一种方法,没有一种方法有效(没有一种方法将我的鼠标按钮设置回正常)。
- F
- f
- 假的
- 假的
- 假的
- “假”
- “假的”
- “假”
- 0
- -1
请根据需要帮助我传递论点。提前感谢。
6条答案
按热度按时间zxlwwiss1#
非常感谢C#解决方案。它工作起来很有魅力。
我做了一个小小的修改,这样我就可以简单地点击桌面快捷键来切换主鼠标按钮,而不需要传入参数。如果我的方法可以帮助其他人,下面是这个版本:
eyh26e7m2#
do not使用
rundll32
。如果安装了.NET Framework运行时,它附带了几种语言的编译器(例如,64位系统上v3.5 C#编译器的
%SystemRoot%\Microsoft.NET\Framework64\v3.5\csc.exe
)。您可以write a program in C#:编译工具:
交换/取消交换按钮:
px9o7tmv3#
有黑客,这可以用来配置布局的鼠标为左撇子用户.只需运行以下命令:
运行此命令为左撇子用户重新配置鼠标布局。
我会给予你一个解释这种行为:
由rundll32.exe调用的函数具有以下函数原型:
SwapMouseButton具有以下函数原型:
SwapMouseButton使用与rundll32.exe调用的每个函数相同的调用约定(__stdcall)。
如果您使用rundll32.exe调用SwapMouseButton,并使用额外的命令行,则此命令行将作为 lpszCmdLine 传递给此函数,并将被忽略。
如果您使用rundll 32调用该函数,rundll 32会自动传递一个有效的窗口句柄(HWND)作为被调用函数的第一个参数。
hwnd -窗口句柄,应用作DLL创建的任何窗口的所有者窗口
rundll 32调用的SwapMouseButton函数需要TRUE作为第一个参数,以便为左撇子用户配置鼠标布局。当使用BOOL值时,rundll32.exe传递给user32.dll中SwapMouseButton的有效窗口句柄不等于0,并且定义为TRUE。
你可以在这里找到rundll32.exe和这个可执行文件调用的函数所使用的原型的详细信息:INFO: Windows Rundll and Rundll32 Interface
你可以在这里找到有关SwapMouseButton函数的详细信息:SwapMouseButton function (Windows)
whlutmcx4#
C中较短的交换器:
通过
cl swapmbtn.c "C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\x64\user32.lib"
在x86_x64 Cross Tools命令提示符下安装Windows SDK并编译将
main
重命名为WinMain
以防止控制台窗口 Flink 。xfb7svmp5#
下面是一个简单的C/C++ Windows应用程序的代码:
编译版本(x86)可以在这里找到:http://micromeg.free.fr/english/progs.html
vfh0ocws6#
我通过在开始菜单中搜索“鼠标”解决了同样的问题。你会发现一个同名的选项。点击它。会出现一个对话框。在按钮选项卡中的“按钮配置”框中取消勾选选项“切换主要和次要按钮”。