webForumDet fria alternativet

Key capture

1 svar · 223 visningar · startad av larsmark

larsmarkMedlem sedan juni 20031 inlägg
#1

Vet någon hur man kan fånga tangentbordtryckningar i delphi? Förmodligen behöver man använa API:t. Jag har sökt men inte hittat något. Med tangentbordtryckningar menar jag alla, även om inte programmet är aktivt utan ligger i bakgrunden.

nikoMedlem sedan juni 20022 599 inlägg
#2

Förmodligen behöver man använa API:t.

Ja, det måste man. I grova drag:

1. Du skapar en systemglobal tangentbords-hook med anropet:

SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, (HINSTANCE)hInstance, 0);

KeyboardProc är en funktion som du skriver själv och till vilken Windows kommer att skicka alla tangentnedtryckningar.

2. Kruxet är sen att SetWindowsHookEx måste anropas inne ifrån en Windows-dll ifall det är frågan om en global hook (anges av nollan på slutet). Du blir alltså tvungen att skriva en dll som du sen anropar från ditt Delphi-program.

Om du har tillgång till nån version av Visual C++ så har jag nog färdig C++-kod för själva dll:en som du kan få.

133 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)