我正在嘗試重新映射遊戲(Elsword)的某些鍵。在Direct3D遊戲上重新映射鍵
所有我使用這段代碼模擬按鍵的第一:
#define WINVER 0x0500
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include "dinput.h"
int main()
{
HWND hWndMain = FindWindow(0, "Elsword");
SetForegroundWindow(hWndMain);
Sleep(3000);
INPUT input[2];
input[0].type=INPUT_KEYBOARD;
input[0].ki.wScan = DIK_V; // direct-input scancode for key '1'
input[0].ki.dwFlags=KEYEVENTF_SCANCODE;
input[1].type=INPUT_KEYBOARD;
input[1].ki.wScan = DIK_V; // direct-input scancode for key '1'
input[1].ki.dwFlags=KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
SendInput(2,input,sizeof(INPUT));
Sleep(1000);
return 0;
}
在所有其它應用中,工作正常,但在遊戲窗口就什麼也不做......
Afaik很難將輸入發送到具有DirectInput和Fullscreenmode的應用程序。也許嘗試使用窗口模式。 – Gnietschow
我已經嘗試過,但仍然無法正常工作... – xXDraklordXx
您可以嘗試使用API-Hooking http://en.wikipedia.org/wiki/Hooking#Hooking_Direct3D來操作輸入數據。 – Gnietschow