C# 如何使用SharpDX RawInput在程序窗口内获得绝对位置的鼠标输入?

C# 如何使用SharpDX RawInput在程序窗口内获得绝对位置的鼠标输入?,c#,raw-input,sharpdx,directinput,C#,Raw Input,Sharpdx,Directinput,我目前正在为一个学校项目开发一个小游戏。为此,我决定对控制器和操纵杆输入使用SharpDX,因为该项目完全是在控制台中的C#中进行的(是的,你听对了)。当涉及到获取鼠标和键盘输入时,问题就出现了。我需要一些方法来获取我的窗口中鼠标的绝对位置 我尝试过使用DirectInput,但由于这只需要相对于鼠标最后一次的位置和绝对值是一个大整数,因此我切换到RawInput。这里的问题在于缺乏在线文档和示例。我尝试过多种方法,但似乎都不管用,很可能是因为我做错了 DirectInput的“工作”代码如下所

我目前正在为一个学校项目开发一个小游戏。为此,我决定对控制器和操纵杆输入使用SharpDX,因为该项目完全是在控制台中的C#中进行的(是的,你听对了)。当涉及到获取鼠标和键盘输入时,问题就出现了。我需要一些方法来获取我的窗口中鼠标的绝对位置

我尝试过使用DirectInput,但由于这只需要相对于鼠标最后一次的位置和绝对值是一个大整数,因此我切换到RawInput。这里的问题在于缺乏在线文档和示例。我尝试过多种方法,但似乎都不管用,很可能是因为我做错了

DirectInput的“工作”代码如下所示:

using (var directInput = new DirectInput())
{
    Mouse mouse;
    mouse = new Mouse(directInput);
    mouse.Properties.AxisMode = DeviceAxisMode.Relative;
    mouse.Properties.BufferSize = 128;
    mouse.Acquire();
    Console.WriteLine(mouse.GetCurrentState());
}
这段代码可以工作,但几乎不可能适应我的需要

我也尝试过这种RawInput方法,但没有成功:

static void Test()
{
    Device.RegisterDevice(UsagePage.Generic, UsageId.GenericMouse, DeviceFlags.None);
    Device.MouseInput += new EventHandler<MouseInputEventArgs>(Device_MouseInput);
    while (true)
    {
        Thread.Sleep(1000 / 60);
    }
}

private static void Device_MouseInput(object sender, MouseInputEventArgs e)
{
    Console.WriteLine("X: {0}, Y: {1}", e.X, e.Y);
}
static void Test()
{
Device.RegisterDevice(UsagePage.Generic、UsageId.GenericMouse、DeviceFlags.None);
Device.MouseInput+=新事件处理程序(Device\u MouseInput);
while(true)
{
睡眠(1000/60);
}
}
专用静态无效设备\u鼠标输入(对象发送方,鼠标输入事件参数e)
{
WriteLine(“X:{0},Y:{1}”,e.X,e.Y);
}
我的问题如下:

using (var directInput = new DirectInput())
{
    Mouse mouse;
    mouse = new Mouse(directInput);
    mouse.Properties.AxisMode = DeviceAxisMode.Relative;
    mouse.Properties.BufferSize = 128;
    mouse.Acquire();
    Console.WriteLine(mouse.GetCurrentState());
}
如何使用SharpDX中提供的内容在我的控制台窗口中获得绝对位置的鼠标输入?任何获得鼠标输入的能力都将不胜感激

<强>注:我不询问使用表单或自己做C++处理程序。这纯粹是使用SharpDX的C#in控制台,这就是问题和答案的内容。如果人们能给我看一个比SharpDX更好的包装器,或者其他一些可以处理游戏杆/游戏板/鼠标/键盘的库,那么我很乐意切换