我需要关于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]));
}
这是我的代码和问题:当我仅使用Send_Key_Hold时,游戏中只按下一个键,其他组合键未被按下,因为第一个键被按住了。当我同时使用Send_Key_Hold和Send_Key_Release时,它不会在游戏中按下任何按钮。但在桌面上(我指的是其他应用程序而非游戏),它会按下该键。
INPUT
。 - Maslowusing System;
using System.Runtime.InteropServices;
- Measurity