用C#获取鼠标光标速度

时间:2016-03-12 23:14:17

标签: c#

在本文的帮助下,我对使用C#更改鼠标速度感到非常满意:http://www.sparrowtail.com/changing-mouse-pointer-speed-c

现在我也想获得当前的鼠标速度。我尝试将0x0072更改为0x0070,同时更改为0x70,希望这是正确的地址。微软的文档说,地址(至少在C ++中)是private int GetMouseSpeed() { const uint SPI_GETMOUSESPEED = 0x0070; uint mouseSpeed = 0; SystemParametersInfo ( SPI_GETMOUSESPEED, 0, mouseSpeed, 0 ); return (int) mouseSpeed; } 但是我不可能在互联网上获得正确的地址。

我的功能:

{{1}}

1 个答案:

答案 0 :(得分:3)

您可以在MSDN上找到uiAction的所有可能值。 SPI_GETMOUSESPEED值为0x70。另外,您需要将指针传递给接收值的整数。在下面的代码中,我使用不安全的&运算符。为了编译它,您需要在项目的构建设置中检查Allow unsafe context

public const UInt32 SPI_GETMOUSESPEED = 0x0070;

[DllImport("User32.dll")]
static extern Boolean SystemParametersInfo(
    UInt32 uiAction,
    UInt32 uiParam,
    IntPtr pvParam,
    UInt32 fWinIni);

static unsafe void Main(string[] args)
{
    int speed;
    SystemParametersInfo(
        SPI_GETMOUSESPEED,
        0,
        new IntPtr(&speed),
        0);
    Console.WriteLine(speed);
}