Hackshield PostMessage Block?

08/06/2011 14:13 kurrbis#16
Also GetKeyboardState wird nur in der Lobby und im Chatfenster aufgerufen...ingame wird es nicht benutzt.

Da GetKeyState durchgehend aufgerufen wird, habe ich es gehookt:

SHORT __stdcall myGetKeyState(int nVirtKey)
{
printf("GetKeyState()");
return 0;
}

Dadurch das ich immer 0 zurückgebe, müsste das Spiel denken, dass keine Taste gedrückt wurde. Die Tastendrücke kommen aber sowohl im Chat wie auch Ingame an. Also scheint GetKeyState bei diesem Spiel keine Rolle zu spielen.

Keybd_event wird überhaupt nicht aufgerufen.

Es bleiben eig. nur noch Windows Messages oder DirectInput. Nur ich kann in der exe absolut keine Referenz zu der directinput.dll finden...
08/07/2011 11:44 MrSm!th#17
Und wie gesagt, alles wird durch SendInput beeinflusst, also kann es nur an HS oder falscher Anwendung von SendInput liegen.

DirectInput muss afaik nicht als dll gelinkt sein, ich sehe nur wenige Spiele, die diese Dll dabei haben.
Ich denke mal es ist dann entweder statisch gelinkt oder Teil einer anderen Dll.
08/07/2011 14:49 kurrbis#18
Code:
void GenerateKey ( int vk , BOOL bExtended) //© http://www.codeguru.com/forum/showthread.php?t=377393
{
  KEYBDINPUT  kb={0};
  INPUT    Input={0};
  // generate down 
  if ( bExtended )
    kb.dwFlags  = KEYEVENTF_EXTENDEDKEY;
  kb.wVk  = vk;  
  Input.type  = INPUT_KEYBOARD;

  Input.ki  = kb;
  ::SendInput(1,&Input,sizeof(Input));

  // generate up 
  ::ZeroMemory(&kb,sizeof(KEYBDINPUT));
  ::ZeroMemory(&Input,sizeof(INPUT));
  kb.dwFlags  =  KEYEVENTF_KEYUP;
  if ( bExtended )
    kb.dwFlags  |= KEYEVENTF_EXTENDEDKEY;

  kb.wVk    =  vk;
  Input.type  =  INPUT_KEYBOARD;
  Input.ki  =  kb;
  ::SendInput(1,&Input,sizeof(Input));
}

int _tmain(int argc, _TCHAR* argv[])
{
	Sleep(3000);
        GenerateKey ('Q', FALSE);
        //GenerateKey (0x10, FALSE); //#define DIK_Q  0x10
	return 0;
}
So benutze ich in meinem Programm SendInput. Funktioniert auch nur leider wieder nicht ingame...Ich habe es mit Ascii Keycodes und mit DirectInput Keycodes probiert.


EDIT:
So habe SendInput grade mal bei League of Legends ausprobiert und ich habe dort genau die gleichen Probleme...Die Taste kommt nur im Chatfenster an....