Skocz do zawartości
kfgz

[c/c++] Przechwycenie Naciśnięcia Klawisza W Aplikacji

Rekomendowane odpowiedzi

Pytanie: w jak sposób można dowiedzieć się czy dany klawisz został naciśnięty w konkretnej aplikacji mając uchwyt do niej? Czy jest to do zrobienia w WinAPI, a jeśli tak to w jaki sposób? Narazie bawię się GetKeyState/GetAsyncKeyState. Na wszelki wypadek zapodaje kod:

 

#pragma hdrstop#include <stdio.h>#include <windows.h>#pragma argsusedHANDLE ProcessHandle;HWND MpcHwnd;const DWORD fc = 0x019e0b1c;POINT point;int main(int argc, char* argv[]) {  int frame_counter;    MpcHwnd = FindWindow("MediaPlayerClassicW", NULL);  if(!MpcHwnd) {	puts("Uruchom najpierw MPC!");	return 1;  }    DWORD ProcessId;  GetWindowThreadProcessId(MpcHwnd, &ProcessId);  ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessId);    while (!GetAsyncKeyState(32))  while (true) {   if (GetAsyncKeyState(13)) return 0;    ReadProcessMemory(ProcessHandle, (LPCVOID)fc, &frame_counter, 4, NULL);   GetCursorPos(&point);   printf("%d; %d; %d;\n", frame_counter, point.x, point.y);  }    CloseHandle(ProcessHandle);  return 0;}
Edytowane przez Dj_AnT

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...