<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Low Level Maushook - Maustaste im WM_MOUSEMOVE ermitteln]]></title><description><![CDATA[<p>hallo, ich habe mir einen Low Level Maushook für WinXP gebastelt, welcher auch ganz gut funktioniert.<br />
allerdings möchte ich im WM_MOUSEMOVE feststellen, welche maustaste zur zeit gedrückt ist.<br />
ich hab es bereits mit GetAsyncKeyState(VK_LBUTTON) &amp; 0x8000 versucht, funzt aber leider nicht.<br />
weiters habe ich in der msdn noch nichts gefunden.<br />
vielleicht kann mir jemand einen tip geben. danke !</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/75470/low-level-maushook-maustaste-im-wm_mousemove-ermitteln</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 09:22:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/75470.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Jun 2004 07:26:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Low Level Maushook - Maustaste im WM_MOUSEMOVE ermitteln on Tue, 01 Jun 2004 07:26:27 GMT]]></title><description><![CDATA[<p>hallo, ich habe mir einen Low Level Maushook für WinXP gebastelt, welcher auch ganz gut funktioniert.<br />
allerdings möchte ich im WM_MOUSEMOVE feststellen, welche maustaste zur zeit gedrückt ist.<br />
ich hab es bereits mit GetAsyncKeyState(VK_LBUTTON) &amp; 0x8000 versucht, funzt aber leider nicht.<br />
weiters habe ich in der msdn noch nichts gefunden.<br />
vielleicht kann mir jemand einen tip geben. danke !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530662</guid><dc:creator><![CDATA[Ernsti]]></dc:creator><pubDate>Tue, 01 Jun 2004 07:26:27 GMT</pubDate></item><item><title><![CDATA[Reply to Low Level Maushook - Maustaste im WM_MOUSEMOVE ermitteln on Tue, 01 Jun 2004 08:38:16 GMT]]></title><description><![CDATA[<p>WM_MOUSEMOVE<br />
...<br />
WPARAM wParam, // key indicators<br />
...<br />
wParam<br />
Indicates whether various virtual keys are down. This parameter can be one or more of the following values.</p>
<p>MK_CONTROL The CTRL key is down.<br />
MK_LBUTTON The left mouse button is down.<br />
MK_MBUTTON The middle mouse button is down.<br />
MK_RBUTTON The right mouse button is down.<br />
MK_SHIFT The SHIFT key is down.<br />
MK_XBUTTON1 Windows 2000/XP: The first X button is down.<br />
MK_XBUTTON2 Windows 2000/XP: The second X button is down.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/530708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530708</guid><dc:creator><![CDATA[CMatt]]></dc:creator><pubDate>Tue, 01 Jun 2004 08:38:16 GMT</pubDate></item><item><title><![CDATA[Reply to Low Level Maushook - Maustaste im WM_MOUSEMOVE ermitteln on Tue, 01 Jun 2004 09:08:05 GMT]]></title><description><![CDATA[<p>Ich habe meinen Maushook folgendermassen programmiert:<br />
(Leider weiss ich immer noch nicht, wie ich an die Taste rankomme..... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> )</p>
<pre><code class="language-cpp">LRESULT CALLBACK LLMouseHook(int nCode, WPARAM wParam,LPARAM lParam)
{
    if(nCode==ACTION)
    {
        MSLLHOOKSTRUCT *mhs = (MSLLHOOKSTRUCT*) lParam;
        if(wParam==WM_MOUSEMOVE)
        {
            // hier soll code nur ausgeführt werden wenn z.b.
            // linke maustaste gedrückt iss.
            return 1;
        }
    }
    return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
}
</code></pre>
<p><strong>Die Parameter dieser Funktion sind:</strong></p>
<p><strong>nCode:</strong><br />
Ist dieser Parameter gleich HC_ACTION, enthalten die Parameter wParam und lParam Infos über die Mausnachricht.<br />
Ist er HC_NOREMOVE, gilt dassselbe wie für HC_ACTION, ausser dass die Nachricht aus der Nachrichtenwarteschlange entfernt wurde. ist der wert kleiner null, muss die hookprozedur die nachricht an die funktion callnexthookex weiter geben, ohne sie weiter zu verarbeiten.<br />
in diesem fall sollte sie die rückgabewerte von callnexthook zurückgeben.</p>
<p><strong>wParam:</strong><br />
Die Mausnachricht kann eine der folgenden Nachrichten sein: **// KEIN KEYINDICATOR !!!**WM_LBUTTONDOWN,WM_LBUTTONUP,WM_MOUSEMOVE,WM_MOUSEWHEEL,WM_RBUTTONDOWN,WM_RBUTTONUP.</p>
<p><strong>lParam:</strong><br />
Zeiger auf eine MSLLHOOKSTRCUT-Struktur</p>
<p><strong>Rückgabewert:</strong><br />
LRESULT ist ncode kleiner als null, dann muss der rückgabewert von CallnextHookEx zurückgegeben werden. Ist nCode grösser als null, empfiehlt es sich , dass der Rückgabewert von CallNextHookEx zurückgegeben wird.Andernfalls werden andere für WH_MOUSE_LL installierte Hooks nicht aufgerufen und es sollte null zurückgegeben werden.</p>
<p>In der <strong>MSLLHOOKSTRUCT</strong> - Struktur konnte ich auch noch nix finden....</p>
<pre><code class="language-cpp">typedef struct tagMSLLHOOKSTRUCT
{
    POINT pt;
    DWORD mouseData;
    DWORD flags;
    DWORD time;
    ULONG_PTR dwExtraInfo;
} MSLLHOOKSTRUCT;
</code></pre>
<p><strong>pt:</strong><br />
Die x-,y-Koordinaten des Cursors in Relation zum Monitor</p>
<p><strong>mouseData:</strong><br />
Wenn die Message WM_MOUSEWHEEL ist, ist das hochrangige wort dieses teils gelich dem rad-delta. das niedrigrangige wort ist reserviert.<br />
ein positiver wert zeigt an, dass das Rad vorwärts gedreht wurde, ein negativer, das rückwärts gedreht wurde. Ein Radclick ist als WHEEL_DELTA gleich 120 definiert.</p>
<p>Ist die message WM_XBUTTONDOWN, WM_XBUTTONUP, WM_XBUTTONDBLCLCK,WM_NCXBUTTONDOWN,WM_NCXBUTTONUP, WM_NCBUTTONDBLCLK, spezifiziert das hochrangige wort, welche x-schaltfläche gedrückt bzw. losgelassen wurde, das niederrangige ist reserviert. dieser wert kann eine der Werte XBUTTON1 oder XBUTTON2 , oder beide sein.<br />
Andernfalls wird mouseData nicht verwendet.</p>
<p><strong>flags:</strong><br />
Nur der erste Abschnitt wird verwendet. Ist er auf 1, wurde der Event eingespeist, andernfalls 0.</p>
<p><strong>time:</strong><br />
Zeitstempel der Nachricht.</p>
<p><strong>dwExtraInfo:</strong><br />
Zusätzliche Info zur Message</p>
<p>Ich habe natürlich im hook (dort wo der kommentar steht) bereits folgendes versucht, was aber auch nicht funktioniert<br />
(warum weiss ich noch nicht - ich bekomme immer null zurück.....).</p>
<pre><code class="language-cpp">if(HIBYTE(GetAsyncKeyState(VK_LBUTTON)))
    AfxMessageBox(&quot;Key down&quot;);
</code></pre>
<p><strong>Beschreibung von GetAsyncKeyState:</strong></p>
<pre><code class="language-cpp">SHORT GetAsyncKeyState(int nVirtKey);
</code></pre>
<p>Stellt fest, ob gerade eine Taste gedrückt ist, oder ob sie seit dem letzten Aufruf von GetAsyncKeyState gedrückt wurde.</p>
<p><strong>Parameter:</strong></p>
<p>nVirtKay - der virtuelle tastencode für die taste.<br />
unter win 2k kann der rechte und linke virtualle tastencode für shift, ctrl und menütasten hergenommen werden , um diese zu unterscheiden.</p>
<p><strong>Rückgabewert:</strong></p>
<p>SHORT Das obere Byte ist 1, wenn die Taste gedrückt ist, sonst 0.<br />
Das untere Byte ist 1, wenn die Taste seit dem letzten Aufruf gedrückt wurde, sonst 0.<br />
Diese Werte werden mit den Makros LOBYTE und HIBYTE ermittelt.</p>
<p><em><strong>BITTE UM HILFE !!!</strong></em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/530718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/530718</guid><dc:creator><![CDATA[Ernsti]]></dc:creator><pubDate>Tue, 01 Jun 2004 09:08:05 GMT</pubDate></item><item><title><![CDATA[Reply to Low Level Maushook - Maustaste im WM_MOUSEMOVE ermitteln on Tue, 01 Jun 2004 18:01:42 GMT]]></title><description><![CDATA[<p>Langsam werd ich blond....... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/531182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/531182</guid><dc:creator><![CDATA[Ernsti]]></dc:creator><pubDate>Tue, 01 Jun 2004 18:01:42 GMT</pubDate></item></channel></rss>