<?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[systemweiter Hook-- nur lokale events kommen an]]></title><description><![CDATA[<p>Hallo ,</p>
<p>ich habe das Problem, dass ich keinen systemweiten Hook hinbekomme.<br />
Ich habe ein Projekt(v. <a href="http://Codeproject.com" rel="nofollow">Codeproject.com</a>) der mit systemweiten MousEHooks arbeitet<br />
als Vorlage genommen.</p>
<pre><code>DLL_EXPORT void SetMouseHook(void)
{
	if (!bHooked)
	{
		//hhook		= SetWindowsHookEx(WH_MOUSE, (HOOKPROC)MouseProc, hInst, (DWORD)NULL);  
		hhook		= SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)CallWndProc, hInst, (DWORD)NULL); 
		bHooked		= true;	
	}
}
</code></pre>
<p>Die alte Funktion ist ausgeklammert , und durch die neuere ersetzt worden<br />
Dazu habe ich eigentlich nur den Rumpf der neuen HookProc eingefügt</p>
<pre><code>LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam) 
{
    //return CallNextHookEx(hhook, nCode, wParam, lParam);
	if (nCode != HC_ACTION) 
	{
		return CallNextHookEx(hhook, nCode, wParam, lParam);
	}
	return 1;
}
</code></pre>
<p>Aber bereits ein Breakpoint auf dem if-statement verrät, dass dort nur lokale<br />
Events ankommen, keine systemweiten. Laut MSDN ist SetWindowsHookEx(..) mit den richtigen Parametern gefüllt , also HInst ist die der DLL..<br />
Etwas merkwürdig finde es ja nur deshalb, weil die vorgefertigte HookProc funktioniert, meine nicht!</p>
<p>Was könnte die Ursache dafür sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205712/systemweiter-hook-nur-lokale-events-kommen-an</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 11:15:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205712.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 17 Feb 2008 09:46:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to systemweiter Hook-- nur lokale events kommen an on Sun, 17 Feb 2008 09:46:47 GMT]]></title><description><![CDATA[<p>Hallo ,</p>
<p>ich habe das Problem, dass ich keinen systemweiten Hook hinbekomme.<br />
Ich habe ein Projekt(v. <a href="http://Codeproject.com" rel="nofollow">Codeproject.com</a>) der mit systemweiten MousEHooks arbeitet<br />
als Vorlage genommen.</p>
<pre><code>DLL_EXPORT void SetMouseHook(void)
{
	if (!bHooked)
	{
		//hhook		= SetWindowsHookEx(WH_MOUSE, (HOOKPROC)MouseProc, hInst, (DWORD)NULL);  
		hhook		= SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)CallWndProc, hInst, (DWORD)NULL); 
		bHooked		= true;	
	}
}
</code></pre>
<p>Die alte Funktion ist ausgeklammert , und durch die neuere ersetzt worden<br />
Dazu habe ich eigentlich nur den Rumpf der neuen HookProc eingefügt</p>
<pre><code>LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam) 
{
    //return CallNextHookEx(hhook, nCode, wParam, lParam);
	if (nCode != HC_ACTION) 
	{
		return CallNextHookEx(hhook, nCode, wParam, lParam);
	}
	return 1;
}
</code></pre>
<p>Aber bereits ein Breakpoint auf dem if-statement verrät, dass dort nur lokale<br />
Events ankommen, keine systemweiten. Laut MSDN ist SetWindowsHookEx(..) mit den richtigen Parametern gefüllt , also HInst ist die der DLL..<br />
Etwas merkwürdig finde es ja nur deshalb, weil die vorgefertigte HookProc funktioniert, meine nicht!</p>
<p>Was könnte die Ursache dafür sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1457387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1457387</guid><dc:creator><![CDATA[wuTangl]]></dc:creator><pubDate>Sun, 17 Feb 2008 09:46:47 GMT</pubDate></item></channel></rss>