<?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[SetWindowsHookEx funktioniert nur in der eigenen Anwendung]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gerne die Events bzw. die Messages aus einem anderen Fenster per Hooking bekommen und auswerten. Und zwar brauch ich die messages aus dem Vordergrundfenster (getForeGroundWindow()). Der Quelltext dazu ist das hier:</p>
<pre><code class="language-cpp">unsigned long *processID=new unsigned long;
 int threadID=GetWindowThreadProcessId(GetForegroundWindow(),processID);

 if(hHook == NULL) {
    hHook = SetWindowsHookEx(WH_GETMESSAGE, (int (__stdcall*)())MessageHook, 0, threadID);
    if(hHook == NULL)
    {
     Label1-&gt;Caption=&quot;ERROR!&quot;;
    }
  }
</code></pre>
<p>Wie man an Label1-&gt;Caption sehen kann, nutze ich Borland. Der Punkt ist aber, dass sich bei diesem Code der Caption von Label1 immer in ein &quot;ERROR!&quot; verwandelt, das nervt. x.x<br />
würde ich im threadID statt GetForegroundWindow() Handle (das hwnd von der eigenen Application in Borland) schreiben, dann kommt kein ERROR mehr und ich bekomme schön alle Messages geliefert, aus der eigenen Application. Könnt ihr mir evtl. sagen, wie ich es hinkriege, dass ich aus allen Fenstern (z.B. Explorerfenster etc.) genau die Events auslesen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/199719/setwindowshookex-funktioniert-nur-in-der-eigenen-anwendung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 21:58:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/199719.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Dec 2007 13:21:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SetWindowsHookEx funktioniert nur in der eigenen Anwendung on Thu, 06 Dec 2007 13:21:37 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gerne die Events bzw. die Messages aus einem anderen Fenster per Hooking bekommen und auswerten. Und zwar brauch ich die messages aus dem Vordergrundfenster (getForeGroundWindow()). Der Quelltext dazu ist das hier:</p>
<pre><code class="language-cpp">unsigned long *processID=new unsigned long;
 int threadID=GetWindowThreadProcessId(GetForegroundWindow(),processID);

 if(hHook == NULL) {
    hHook = SetWindowsHookEx(WH_GETMESSAGE, (int (__stdcall*)())MessageHook, 0, threadID);
    if(hHook == NULL)
    {
     Label1-&gt;Caption=&quot;ERROR!&quot;;
    }
  }
</code></pre>
<p>Wie man an Label1-&gt;Caption sehen kann, nutze ich Borland. Der Punkt ist aber, dass sich bei diesem Code der Caption von Label1 immer in ein &quot;ERROR!&quot; verwandelt, das nervt. x.x<br />
würde ich im threadID statt GetForegroundWindow() Handle (das hwnd von der eigenen Application in Borland) schreiben, dann kommt kein ERROR mehr und ich bekomme schön alle Messages geliefert, aus der eigenen Application. Könnt ihr mir evtl. sagen, wie ich es hinkriege, dass ich aus allen Fenstern (z.B. Explorerfenster etc.) genau die Events auslesen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415838</guid><dc:creator><![CDATA[Bigdeak]]></dc:creator><pubDate>Thu, 06 Dec 2007 13:21:37 GMT</pubDate></item><item><title><![CDATA[Reply to SetWindowsHookEx funktioniert nur in der eigenen Anwendung on Thu, 06 Dec 2007 13:24:40 GMT]]></title><description><![CDATA[<p>DLL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415841</guid><dc:creator><![CDATA[sw...]]></dc:creator><pubDate>Thu, 06 Dec 2007 13:24:40 GMT</pubDate></item><item><title><![CDATA[Reply to SetWindowsHookEx funktioniert nur in der eigenen Anwendung on Thu, 06 Dec 2007 15:56:01 GMT]]></title><description><![CDATA[<p>Ich habe alles in eine DLL gepackt und dann in einer neuen Applikation diese DLL geladen, im Endeffekt hab ich jetzt noch das gleiche Problem. Liegt das vielleicht daran, dass ich die DLL mit dem Hookingfunktionen in eine Applikation mit API nutze?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415971</guid><dc:creator><![CDATA[Bigdeak]]></dc:creator><pubDate>Thu, 06 Dec 2007 15:56:01 GMT</pubDate></item><item><title><![CDATA[Reply to SetWindowsHookEx funktioniert nur in der eigenen Anwendung on Thu, 06 Dec 2007 16:45:15 GMT]]></title><description><![CDATA[<p>Wenn der Hook für sämtliche Prozesse wirksam sein soll, dann muß bei SetWindowsHookEx() die threadID = 0 sein und hMod die Instanz der DLL.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1416001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1416001</guid><dc:creator><![CDATA[bigdick]]></dc:creator><pubDate>Thu, 06 Dec 2007 16:45:15 GMT</pubDate></item></channel></rss>