Einzelnen Beitrag anzeigen

T3rm1n4T0r

Registriert seit: 10. Sep 2004
38 Beiträge
 
Turbo Delphi für Win32
 
#1

Merkwürdiges Problem mit Kbd Hook

  Alt 9. Okt 2005, 18:23
Hi,
ich hab mir einen KeyboardHook geschrieben, der eine Message and das Hauptprogramm sendet, damit ich dort alles auswerten kann.
Das Ganze sieht so aus:
Delphi-Quellcode:
function KbdHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
  Result := CallNextHookEx(Keyboard_HookHandle, nCode, wParam, lParam);
  case nCode < 0 of
    True: exit; // nicht anrühren wenns negativ ist
    False:
      begin
        case ((lParam and $80000000) = 0) of
          True: ; // WM_KEYDOWN
        else // WM_KEYUP
          SendMessage(HWND_BROADCAST,myMsg3,wParam,lParam);
        end;
      end;
  end;
end;
Mein Problem ist jetzt, dass wenn ich in einem Spiel (in meinem Fall Warcraft III) eine Taste drücke, dann wird die Message zweimal gesendet. In Windows passiert dies auch manchmal. Undzwar wenn ich in einem Edit das auf der Form liegt eine Taste drücke. Hat das Edit keinen Focus, dann kommt die Message einmal an, so wie es sein soll?
Hat jemand eine Idee, was da los ist und wie ich das in den Griff bekommen kann?
  Mit Zitat antworten Zitat