Bitte lese Dir ein paar Non-
VCL Dokumentationen durch, Michael Puff war ein begeisterter und talentierter Non-
VCL Programmierer, seine Resourcen sind immer noch abrufbar.
Die Art und Weise wie Du es versuchst ist .... schräg.
Mein Rat, ich würde die Tastatur-Abfrage in einen Timer schubsen, kleines mini Beispiel:
Delphi-Quellcode:
// global
var
HID: Integer;
Msg: TMsg;
// hier eine timer methode für tasten
procedure HotkeyTimer(TimerID, Msg: Uint; dwUser, dw1, dw2: DWord);
pascal;
BEGIN
if (GetKeyState(VK_P)
and (1
shl 31)) <> 0)
// wurde taste "P" gedrückt
then
// mach was wenn P gedrückt wurde.... nur als beispiel
;
END;
// hier folgt der hauptaufruf um die klasse und deren objekte zu erschaffen
// nachdem du deine klasse mal ordentlich initialisiert hast und auch nutzt, diese zeile aktiviert einen windows timer der alle 10ms abgerufen wird
HID := TimeSetEvent(10, 0, @HotkeyTimer, 0, TIME_PERIODIC);
// nach diesem Aufruf folgt die Message behandlung, regulär so:
while(GetMessage(Msg,
Handle, 0, 0))
do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
// damit wenn der loop beendet ist du die klasse und alle anderen objekte auch wieder freigeben kannst
TimeKillEvent(HID);
// edit
das obige versetzt die tastatur-abfrage systemweit, also von jedem window aus werden die tasten geprüft und ausgewertet!