請教,C++做一個鍵盤模擬器,但設定的鍵在游戲中得不到反映,這個問題要怎么解決?
似乎游戲已屏蔽掉了這種機制的模擬,還有更好的辦法嗎
#include "stdafx.h"
#include "windows.h"
void SetNumLock( BOOL bState )
{
BYTE keyState[256];
// GetKeyboardState((LPBYTE)&keyState);
// if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
// (!bState && (keyState[VK_NUMLOCK] & 1)) )
{
// Simulate a key press
keybd_event( 0x53,
0x1f,
KEYEVENTF_EXTENDEDKEY | 0,
0 );
// Simulate a key release
keybd_event( 0x53,
0x1f,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
}
}
void main()
{
int a=5000;
Sleep(a);
SetNumLock( TRUE );
}
uj5u.com熱心網友回復:
WinIo驅動級鍵盤模擬編程uj5u.com熱心網友回復:
usb介面的呢,通用嗎uj5u.com熱心網友回復:
驅動一個機械手按鍵盤和點擊/移動滑鼠!
uj5u.com熱心網友回復:
有一些D3D游戲,需要keybd_event的第二個引數設定正確才行.比如:keybd_event(vk,MapVirtualKey(vk,0),dwFlags,NULL);
uj5u.com熱心網友回復:
keybd_event 函式例如按下 回車鍵 keybd_event(13, MapVirtualKeyA(13,0), 0, 0);
彈起 keybd_event(13, MapVirtualKeyA(13, 0), KEYEVENTF_KEYUP, 0);
13是回車鍵的 key Value值
MapVirtualKeyA 自己百度
uj5u.com熱心網友回復:
很多游戲為了防外掛禁止了這種模擬建議上驅動Ring0來實作,網上有大把這種教程
uj5u.com熱心網友回復:
r3層的一般都屏蔽了吧,自己r0虛擬設備太麻煩,還不如買個宏鍵盤轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/45360.html
標籤:進程/線程/DLL
