检查C++中是否交换了鼠标按钮

GTA*_*ver 4 c++ winapi click mouseevent

我想将一些鼠标单击消息发送到另一个程序的指定窗口.我目前正在使用WM_LBUTTONUPWM_LBUTTONDOWN工作正常的消息.

无论用户的鼠标按钮设置如何,这些消息的执行方式完全相同.反对它,我想知道用户是否从鼠标设置控制面板交换了鼠标按钮.

我研究并发现了SwapMouseButton功能,它工作正常,但我不想实际交换鼠标按钮,我只是想知道它是否以前被交换过.

来自MSDN:

如果先前反转鼠标按钮的含义,则在调用函数之前,返回值为非零.

我可以通过这种方式获得我想要的信息,但它也可以将它们恢复到鼠标按钮的原始状态.我只想检查而不是恢复到原始状态.

我目前称这个函数为:

SwapMouseButton(FALSE);
Run Code Online (Sandbox Code Playgroud)

我想知道任何其他替代方式(类似的东西SystemParametersInfo)只检查(不是也恢复)鼠标按钮之前是否已被用户交换过.

基本上,我想要做的是根据用户的鼠标按钮含义模拟鼠标主按钮点击和鼠标左键单击.

例如,当我模拟主鼠标按钮单击时,如果用户交换了鼠标按钮,则应该像往常一样模拟鼠标右键,否则将其保留.没有消息存在,WM_PRIMARY...并且WM_SECONDARY...让我做我想做的事情.

提前致谢.

DAl*_*Ale 8

您可以将GetSystemMetricsSM_SWAPBUTTON参数值一起使用.

SM_SWAPBUTTON 23

如果交换了鼠标左键和右键的含义,则为非零; 否则,0.