<?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[Wndproc Hook - systemweit, viele Programme crashen, aber wieso?]]></title><description><![CDATA[<p>Hallo,<br />
ich habe zum Spaß ein kleines Programm geschrieben, welches allen Fenstern einen neuen Titel gibt, wenn sie die Nachricht WM_CREATE oder WM_SIZE erhalten...nur einige Programme kommen mit dem Hook nicht zu Recht...wisst ihr was ich falsch gemacht habe?<br />
Hier der Code von der DLL:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
static HINSTANCE g_hModule = NULL;
LRESULT CALLBACK CallWndProc(
  int nCode,      // hook code
  WPARAM wParam,  // current-process flag
  LPARAM lParam   // address of structure with message data
);
extern &quot;C&quot; __declspec(dllexport) void Start();
extern &quot;C&quot; __declspec(dllexport) void Stop();
HHOOK m_wndhook;
BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{

    switch (ul_reason_for_call)
	{
		case DLL_PROCESS_ATTACH:
			//MessageBox(0, &quot;jetzt gehts los :&gt;&quot;, 0, 0);
			g_hModule = (HINSTANCE) hModule;
			break;

		case DLL_PROCESS_DETACH:
		//if(m_wndhook)
		//UnhookWindowsHookEx(m_wndhook);
			break;
	}

    return TRUE;
}

LRESULT CALLBACK CallWndProc(
  int nCode,      // hook code
  WPARAM wParam,  // current-process flag
  LPARAM lParam   // address of structure with message data
)
{
         if(nCode == HC_ACTION)
         {
	CWPSTRUCT* wpStruct = (CWPSTRUCT*)lParam;
	switch(wpStruct-&gt;message)
	{
	case WM_CREATE:
	SetWindowText(wpStruct-&gt;hwnd, &quot;Lustiger Spass, nicht?&quot;);
	break;
	case WM_SIZE:
	SetWindowText(wpStruct-&gt;hwnd, &quot;Lustiger Spass, nicht?&quot;);
	break;
	}
         }

	return CallNextHookEx(m_wndhook, nCode, wParam, lParam);
}
extern &quot;C&quot; __declspec(dllexport)
void Start()
{
	//MessageBox(0, &quot;los gings&quot;,0,0);
	m_wndhook = SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)CallWndProc, g_hModule, 0);	
}

extern &quot;C&quot; __declspec(dllexport)
void Stop()
{
	if(m_wndhook)
		UnhookWindowsHookEx(m_wndhook);
}
</code></pre>
<p>Und hier der Code in meiner Anwendung, um den Hook zu aktivieren:</p>
<pre><code class="language-cpp">HMODULE hDll = LoadLibrary(&quot;Lustig.dll&quot;);
	_Start = (LPF_START)GetProcAddress(hDll, &quot;Start&quot;);
	_Stop = (LPF_STOP)GetProcAddress(hDll, &quot;Stop&quot;);
	_Start();
</code></pre>
<p>Rest ist uninteressant, weil der noch nicht ausgeführt wird....<br />
mach ich was falsch oder kommt der Explorer zB nicht mit attachten DLLs klar?</p>
<p>Gruß,<br />
Kevin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/73982/wndproc-hook-systemweit-viele-programme-crashen-aber-wieso</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 10:47:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/73982.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 May 2004 08:41:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wndproc Hook - systemweit, viele Programme crashen, aber wieso? on Sun, 16 May 2004 08:50:03 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe zum Spaß ein kleines Programm geschrieben, welches allen Fenstern einen neuen Titel gibt, wenn sie die Nachricht WM_CREATE oder WM_SIZE erhalten...nur einige Programme kommen mit dem Hook nicht zu Recht...wisst ihr was ich falsch gemacht habe?<br />
Hier der Code von der DLL:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
static HINSTANCE g_hModule = NULL;
LRESULT CALLBACK CallWndProc(
  int nCode,      // hook code
  WPARAM wParam,  // current-process flag
  LPARAM lParam   // address of structure with message data
);
extern &quot;C&quot; __declspec(dllexport) void Start();
extern &quot;C&quot; __declspec(dllexport) void Stop();
HHOOK m_wndhook;
BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{

    switch (ul_reason_for_call)
	{
		case DLL_PROCESS_ATTACH:
			//MessageBox(0, &quot;jetzt gehts los :&gt;&quot;, 0, 0);
			g_hModule = (HINSTANCE) hModule;
			break;

		case DLL_PROCESS_DETACH:
		//if(m_wndhook)
		//UnhookWindowsHookEx(m_wndhook);
			break;
	}

    return TRUE;
}

LRESULT CALLBACK CallWndProc(
  int nCode,      // hook code
  WPARAM wParam,  // current-process flag
  LPARAM lParam   // address of structure with message data
)
{
         if(nCode == HC_ACTION)
         {
	CWPSTRUCT* wpStruct = (CWPSTRUCT*)lParam;
	switch(wpStruct-&gt;message)
	{
	case WM_CREATE:
	SetWindowText(wpStruct-&gt;hwnd, &quot;Lustiger Spass, nicht?&quot;);
	break;
	case WM_SIZE:
	SetWindowText(wpStruct-&gt;hwnd, &quot;Lustiger Spass, nicht?&quot;);
	break;
	}
         }

	return CallNextHookEx(m_wndhook, nCode, wParam, lParam);
}
extern &quot;C&quot; __declspec(dllexport)
void Start()
{
	//MessageBox(0, &quot;los gings&quot;,0,0);
	m_wndhook = SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)CallWndProc, g_hModule, 0);	
}

extern &quot;C&quot; __declspec(dllexport)
void Stop()
{
	if(m_wndhook)
		UnhookWindowsHookEx(m_wndhook);
}
</code></pre>
<p>Und hier der Code in meiner Anwendung, um den Hook zu aktivieren:</p>
<pre><code class="language-cpp">HMODULE hDll = LoadLibrary(&quot;Lustig.dll&quot;);
	_Start = (LPF_START)GetProcAddress(hDll, &quot;Start&quot;);
	_Stop = (LPF_STOP)GetProcAddress(hDll, &quot;Stop&quot;);
	_Start();
</code></pre>
<p>Rest ist uninteressant, weil der noch nicht ausgeführt wird....<br />
mach ich was falsch oder kommt der Explorer zB nicht mit attachten DLLs klar?</p>
<p>Gruß,<br />
Kevin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/521156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/521156</guid><dc:creator><![CDATA[Surkevin]]></dc:creator><pubDate>Sun, 16 May 2004 08:50:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wndproc Hook - systemweit, viele Programme crashen, aber wieso? on Sun, 16 May 2004 10:08:32 GMT]]></title><description><![CDATA[<p>m_wndhook ist nur in der Instanz der DLL gültig, in der du Start() aufrufst. In allen anderen ist es glaube 0 (globale Variablen werden doch automatisch mit 0 initialisiert). Somit hat der Aufruf von CallNextHookEx() wenig Sinn und liefert nur einen Fehler (Invalid Handle).</p>
<p>BTW: es könnte durchaus sein, dass manche Programme nicht damit klarkommen, dass jeder Fenstertext (auch Childs) in einen anderen umgewandelt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/521205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/521205</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Sun, 16 May 2004 10:08:32 GMT</pubDate></item><item><title><![CDATA[Reply to Wndproc Hook - systemweit, viele Programme crashen, aber wieso? on Sun, 16 May 2004 10:15:29 GMT]]></title><description><![CDATA[<p>ne am m_wndhook sollte es nicht liegen weil sonst würde es doch nie gehen? Sonst noch Möglichkeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/521209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/521209</guid><dc:creator><![CDATA[Surkevin]]></dc:creator><pubDate>Sun, 16 May 2004 10:15:29 GMT</pubDate></item><item><title><![CDATA[Reply to Wndproc Hook - systemweit, viele Programme crashen, aber wieso? on Sun, 16 May 2004 10:25:44 GMT]]></title><description><![CDATA[<p>CallWndProc() wird trotzdem aufgerufen, nur keine weiteren Hooks (und die originale WndProc?), aber wenn du es sowieso besser weist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/521216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/521216</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Sun, 16 May 2004 10:25:44 GMT</pubDate></item><item><title><![CDATA[Reply to Wndproc Hook - systemweit, viele Programme crashen, aber wieso? on Sun, 16 May 2004 10:38:17 GMT]]></title><description><![CDATA[<p>aber es muss doch eine Möglichkeit geben in dem Fall den weitern Hooks bescheid zu geben? Umsonst wird es die Möglichkeit der globalen Hooks ja wohl kaum geben <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=":\"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/521230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/521230</guid><dc:creator><![CDATA[Surkevin]]></dc:creator><pubDate>Sun, 16 May 2004 10:38:17 GMT</pubDate></item><item><title><![CDATA[Reply to Wndproc Hook - systemweit, viele Programme crashen, aber wieso? on Sun, 16 May 2004 11:01:58 GMT]]></title><description><![CDATA[<p>wenn ich SetWindowText aus WM_CREATE rausnehme stürzt niemand mehr ab <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="🙂"
    /><br />
Aber das mit den weiteren Hooks interessiert mich trotzdem...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/521248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/521248</guid><dc:creator><![CDATA[Surkevin]]></dc:creator><pubDate>Sun, 16 May 2004 11:01:58 GMT</pubDate></item></channel></rss>