小编eyu*_*ups的帖子

C#DirectInput SendInput不影响游戏

我需要一些关于DirectInput的帮助,我会告诉我想要做什么.当我只按一个键时,我想让我的程序向游戏发送键组合.例子:我将按"r",它将按"1","3","2","4"键.我从这里找到了一些代码.但他们并没有完全奏效.

    public static void Send_Key_Hold(short Keycode)
    {
        INPUT[] InputData = new INPUT[1];
        InputData[0].type = 1;
        InputData[0].ki.wScan = Keycode;
        InputData[0].ki.dwFlags = (int)(KEYEVENTF_SCANCODE);

        SendInput(1, InputData, Marshal.SizeOf(InputData[0]));
    }
    public static void Send_Key_Release(short Keycode)
    {
        INPUT[] InputData = new INPUT[1];
        InputData[0].type = 1;
        InputData[0].ki.wScan = Keycode;
        InputData[0].ki.dwFlags = (int)(KEYEVENTF_KEYUP | KEYEVENTF_SCANCODE);

        SendInput(1, InputData, Marshal.SizeOf(InputData[0]));
    }
Run Code Online (Sandbox Code Playgroud)

这是我的代码和我的问题:当我使用Send_Key_Hold时,它只按下游戏中的一个键并且没有按下其他组合键,因为我认为第一个键是持久的.当我一起使用Send_Key_Hold和Send_Key_Release时,它不会按下游戏上的任何按钮.但在桌面上(我的意思是任何其他应用程序而不是游戏)它按下键.

c# directinput sendinput

5
推荐指数
1
解决办法
4669
查看次数

标签 统计

c# ×1

directinput ×1

sendinput ×1