![]() |
WM_KEYDOWN lparam bit 30 auslesen?
Hab schon gesehen dass es einen ähnlichen Thread wie diesen gibt->
![]() ...aber trotzdem krieg ich es nicht hin das 30. Bit des lparam auszulesen (aus MSDN: 30 Specifies the previous key state. The value is 1 if the key is down before the message is sent, or it is 0 if the key is up. ) Habe einen Journalhook:
Delphi-Quellcode:
function MouseHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
var P: PEventMsg; begin If nCode = HC_ACTION then begin If lParam <> 0 then begin P := PEventMsg(lParam); if P^.message = WM_KEYDOWN then begin if (lparam and $20000000)=$20000000 then Beep; end; end; end; end; |
Re: WM_KEYDOWN lparam bit 30 auslesen?
Da war letztens ein Thread ueber JOURNALHOOKs hier bei dem das auch nicht ging. Warum erwartest du uebrigens das die Mausmessages die gleichen Parameter wie Keyboardmessages haben?
|
Re: WM_KEYDOWN lparam bit 30 auslesen?
Guten Morgen.
Wenn du Konstanten mehrmals verwendest, dann ist eine Konstantenvereinbarung vorteilhaft. Wenn du dann noch die richtige Konstante verwendest - um so besser.
Delphi-Quellcode:
Edit: Das nur zu deinem Delphi-Problem. Zu deinem Problem mit Windows hat Robert schon was geschrieben.
const
PREV_KEY_STATE = 1 shl 30; // $40000000 begin // ... if lparam and PREV_KEY_STATE = PREV_KEY_STATE then Beep; // Ohne Konstante geht es auch so: if Odd(lparam shr 30) then Beep; // .. end; Grüße vom marabu |
Re: WM_KEYDOWN lparam bit 30 auslesen?
Zitat:
Danke für die Tipps. Habe es vorerst über WMKEYUP gelöst, aber scheinbar wird ne DLL fällig sein, denn es ist auch nicht möglich die Richtung in der man das Mausrad gescrollt hat zu ermitteln mit nem Journalhook :/ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz