<?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[Maus hook funktioniert nicht (richtig)]]></title><description><![CDATA[<p>Ich habe einen Testdialog erstellt, um einen Maushook zu testen.<br />
In der Applikationsklasse erstelle ich im InitInstance dann den Hook :</p>
<pre><code class="language-cpp">hMouseHook = SetWindowsHookEx(WH_MOUSE,   (HOOKPROC) MouseHookProc, AfxGetInstanceHandle(),AfxGetThread()-&gt;m_nThreadID);
</code></pre>
<p>Die Callbackfunktion:</p>
<pre><code class="language-cpp">LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
	if(nCode &lt; 0)
		return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
	if(nCode == HC_ACTION)
	{
		MOUSEHOOKSTRUCT *mhs = (MOUSEHOOKSTRUCT*) lParam;
		long nTempX = mhs-&gt;pt.x*2;
		long nTempY = mhs-&gt;pt.x*2;

		HWND hwnd=FindWindow(NULL,&quot;hooktest&quot;);

		if(!hwnd)
			TRACE(&quot;Fenster nicht gefunden !&quot;);

		PostMessage(hwnd, nCode, wParam, MAKELPARAM(nTempX, nTempY));

		CString str;
		str.Format(&quot;X:%d (%d) ,Y:%d (%d)\n&quot;,nTempX,mhs-&gt;pt.x,nTempY,mhs-&gt;pt.y);
		TRACE(str);
	}
	return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
}
</code></pre>
<p>Das Ding läuft auch wunderbar.<br />
Ich schicke nun die veränderten Mauskoordinaten an den Dialog (der zu meiner anwendung gehört), aber leider kommen dort die ORIGINALKoordinaten an.<br />
Ich plage mich bereits 2 Tage mit diesem Problem und komme einfach nicht dahinter, was ich dabei falsch mache.</p>
<p>In meinem Dialog lasse ich im OnLButtonDown die angekommenen Korrdinaten ausgeben, was aber NICHT meinen geänderten entspricht.<br />
Kann es sein das mein Hook gar nicht funktioniert ???</p>
<p>Bitte dringend um Hilfe, da ich in der FAQ bzw. Google noch nichts gefunden habe, das mir weiterhelfen kann.</p>
<p>Danke !</p>
<p>In diesem Sinne:</p>
<p>Happy coding ! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">#include &lt;afxwin.h&gt;

class CMyApp : CWinApp
{
public:
    BOOL InitInstance()
    {
        AfxMessageBox(&quot;Hello hook !&quot;);
    }
}

CMyApp TheApp;
</code></pre>
<p>PS: Win2k/SP4 bzw WINXP, VC6/SP5</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/75102/maus-hook-funktioniert-nicht-richtig</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 15:08:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/75102.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 May 2004 12:31:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Maus hook funktioniert nicht (richtig) on Thu, 27 May 2004 12:35:09 GMT]]></title><description><![CDATA[<p>Ich habe einen Testdialog erstellt, um einen Maushook zu testen.<br />
In der Applikationsklasse erstelle ich im InitInstance dann den Hook :</p>
<pre><code class="language-cpp">hMouseHook = SetWindowsHookEx(WH_MOUSE,   (HOOKPROC) MouseHookProc, AfxGetInstanceHandle(),AfxGetThread()-&gt;m_nThreadID);
</code></pre>
<p>Die Callbackfunktion:</p>
<pre><code class="language-cpp">LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
	if(nCode &lt; 0)
		return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
	if(nCode == HC_ACTION)
	{
		MOUSEHOOKSTRUCT *mhs = (MOUSEHOOKSTRUCT*) lParam;
		long nTempX = mhs-&gt;pt.x*2;
		long nTempY = mhs-&gt;pt.x*2;

		HWND hwnd=FindWindow(NULL,&quot;hooktest&quot;);

		if(!hwnd)
			TRACE(&quot;Fenster nicht gefunden !&quot;);

		PostMessage(hwnd, nCode, wParam, MAKELPARAM(nTempX, nTempY));

		CString str;
		str.Format(&quot;X:%d (%d) ,Y:%d (%d)\n&quot;,nTempX,mhs-&gt;pt.x,nTempY,mhs-&gt;pt.y);
		TRACE(str);
	}
	return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
}
</code></pre>
<p>Das Ding läuft auch wunderbar.<br />
Ich schicke nun die veränderten Mauskoordinaten an den Dialog (der zu meiner anwendung gehört), aber leider kommen dort die ORIGINALKoordinaten an.<br />
Ich plage mich bereits 2 Tage mit diesem Problem und komme einfach nicht dahinter, was ich dabei falsch mache.</p>
<p>In meinem Dialog lasse ich im OnLButtonDown die angekommenen Korrdinaten ausgeben, was aber NICHT meinen geänderten entspricht.<br />
Kann es sein das mein Hook gar nicht funktioniert ???</p>
<p>Bitte dringend um Hilfe, da ich in der FAQ bzw. Google noch nichts gefunden habe, das mir weiterhelfen kann.</p>
<p>Danke !</p>
<p>In diesem Sinne:</p>
<p>Happy coding ! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">#include &lt;afxwin.h&gt;

class CMyApp : CWinApp
{
public:
    BOOL InitInstance()
    {
        AfxMessageBox(&quot;Hello hook !&quot;);
    }
}

CMyApp TheApp;
</code></pre>
<p>PS: Win2k/SP4 bzw WINXP, VC6/SP5</p>
]]></description><link>https://www.c-plusplus.net/forum/post/528232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/528232</guid><dc:creator><![CDATA[Ernsti]]></dc:creator><pubDate>Thu, 27 May 2004 12:35:09 GMT</pubDate></item><item><title><![CDATA[Reply to Maus hook funktioniert nicht (richtig) on Thu, 27 May 2004 16:59:24 GMT]]></title><description><![CDATA[<p>So, hab nun meinen Fehler behoben, die koordinaten kommen nun richtig im dialog an.</p>
<p>So meine Callback funktion sieht nun so aus:</p>
<pre><code class="language-cpp">LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
	if(nCode &lt; 0)
		return CallNextHookEx(hMouseHook, nCode, wParam, lParam);

	// Verhindern das eine Nachricht mehrmals verarbeitet wird.
	int nX=0;
	int nY=0;

	if(nCode == HC_ACTION)
	{
		MOUSEHOOKSTRUCT *mhs = (MOUSEHOOKSTRUCT*) lParam;

		nX=mhs-&gt;pt.x*2;
		nY=mhs-&gt;pt.y*2;

                  HWND hwnd = FindWindow(NULL,&quot;hooktest&quot;);
                  if(!hwnd)
                      TRACE(&quot;Fenster nicht gefunden !&quot;);

		if(wParam==WM_LBUTTONDOWN)
		{
			CString str;
			str.Format(&quot;MH HOOK %d (%d) | %d (%d)\n&quot;,nX,mhs-&gt;pt.x,nY,mhs-&gt;pt.y);
			TRACE(str);
			PostMessage(hwnd, wParam, MK_LBUTTON,  MAKELPARAM(nX,nY));
		}
		if(wParam==WM_LBUTTONUP)
		{
			CString str;
			str.Format(&quot;MH HOOK %d (%d) | %d (%d)\n&quot;,nX,mhs-&gt;pt.x,nY,mhs-&gt;pt.y);
			TRACE(str);
			PostMessage(hwnd, NULL, MK_LBUTTON,  MAKELPARAM(nX,nY));
		}
	}
	return CallNextHookEx(hMouseHook, nCode, wParam, MAKELPARAM(nX,nY));
}
</code></pre>
<p>aber neues problem....... KEINES meiner Steuerelemente reagiert.<br />
Kann mir jemand sagen, was ich falsch gemacht, bzw. übersehen habe ???</p>
<p>ich bin schon am verzweifeln......</p>
]]></description><link>https://www.c-plusplus.net/forum/post/528522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/528522</guid><dc:creator><![CDATA[Ernsti]]></dc:creator><pubDate>Thu, 27 May 2004 16:59:24 GMT</pubDate></item><item><title><![CDATA[Reply to Maus hook funktioniert nicht (richtig) on Fri, 28 May 2004 19:05:14 GMT]]></title><description><![CDATA[<p>an einen moderator:</p>
<p>habe lösungweg gefunden - daher bitte thread auf eis legen.<br />
wenn ich die lösung ausgearbeitet habe - wird sie gepostet !</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/529173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/529173</guid><dc:creator><![CDATA[Ernsti]]></dc:creator><pubDate>Fri, 28 May 2004 19:05:14 GMT</pubDate></item></channel></rss>