(C ++)带有SPI_SetMouse的SystemParametersInfo似乎没有改变光标速度

时间:2012-03-24 01:41:56

标签: c++ msdn

我基本上直接从MSDN documentation

复制了以下代码
#include <windows.h>
#include <stdio.h>
#pragma comment(lib, "user32.lib")

int main()
{
   BOOL fResult;
   int aMouseInfo[3];       // array for mouse information

   // Get the current mouse speed. 

   fResult = SystemParametersInfo(
      SPI_GETMOUSE,   // get mouse information 
      0,              // not used 
      &aMouseInfo,    // holds mouse information
      0);             // not used 

   // Double it. 

   if( fResult )
   {
      aMouseInfo[2] =  1; // 2 * aMouseInfo[2]; 
      // 1 should be a very noticeable change: slowing the cursor way down
      // Change the mouse speed to the new value. 

      SystemParametersInfo(
         SPI_SETMOUSE,      // set mouse information
         0,                 // not used 
         aMouseInfo,        // mouse information 
         SPIF_SENDCHANGE);  // update win.ini 
   }
   return 0;
}

然而,当我运行它时,似乎没有任何事情发生。鼠标速度应该改变,但事实并非如此。

Windows Vista Home x32(ouch) Dev-C ++ Portable

1 个答案:

答案 0 :(得分:2)

此处,aMouseInfo [2]引用增强鼠标精度字段。 如果aMouseInfo [2]设置为TRUE(或指定除0以外的任何编号),则增强鼠标精度字段为SET,如果为FALSE(或指定为0),则增强鼠标精度字段是UNSET。

要获取和设置Mousespeed,您可以使用SPI_GETMOUSESPEED和SPI_SETMOUSESPEED resp。

要使用SPI_GETMOUSESPEED和SPI_SETMOUSESPEED,请参阅post