我基本上已经从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(哎呀)
Dev-C++便携式

最佳答案

在这里,aMouseInfo [2]指的是增强鼠标精度字段
如果aMouseInfo [2]设置为TRUE(或分配为0以外的任何其他编号),则增强鼠标精度字段为SET;如果为FALSE(或分配为0),则增强鼠标精度字段为UNSET。

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

要使用SPI_GETMOUSESPEED和SPI_SETMOUSESPEED,请引用post

10-05 21:09