<?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[Wieder einmal: SetWindowsHookEx()]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine kleine Keylogger DLL geschrieben und die funktioniert auch, zumindest wenn ich sie z.B. über eine Konsolenanwendung benutze.</p>
<p>Das Problem ist aber, und dazu habe ich bislang nichts gefunden, daß ich sie von einem NT Service aus benutzen möchte und da passt SetWindowsHookEx() der hInstance Handle offenbar nicht, welchen ich bei DLL_PROCESS_ATTACH in der DllMain kriege.<br />
Zumindest liefert GetLastError() den Fehlercode &quot;6&quot; für &quot;Invalid Handle&quot;.</p>
<p>Wie krieg ich hier einen gültigen Handle?!?</p>
<p>Thx,<br />
matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/105187/wieder-einmal-setwindowshookex</link><generator>RSS for Node</generator><lastBuildDate>Sat, 02 May 2026 05:44:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/105187.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 27 Mar 2005 15:50:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wieder einmal: SetWindowsHookEx() on Sun, 27 Mar 2005 15:50:55 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine kleine Keylogger DLL geschrieben und die funktioniert auch, zumindest wenn ich sie z.B. über eine Konsolenanwendung benutze.</p>
<p>Das Problem ist aber, und dazu habe ich bislang nichts gefunden, daß ich sie von einem NT Service aus benutzen möchte und da passt SetWindowsHookEx() der hInstance Handle offenbar nicht, welchen ich bei DLL_PROCESS_ATTACH in der DllMain kriege.<br />
Zumindest liefert GetLastError() den Fehlercode &quot;6&quot; für &quot;Invalid Handle&quot;.</p>
<p>Wie krieg ich hier einen gültigen Handle?!?</p>
<p>Thx,<br />
matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/753755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/753755</guid><dc:creator><![CDATA[testheini]]></dc:creator><pubDate>Sun, 27 Mar 2005 15:50:55 GMT</pubDate></item><item><title><![CDATA[Reply to Wieder einmal: SetWindowsHookEx() on Sun, 27 Mar 2005 17:16:00 GMT]]></title><description><![CDATA[<p>Ok, kleine Änderung:<br />
SetWindowsHookEx() gibt ein non-zero Ergebnis, d.h. bezieht sich die GetlastError() Meldung nicht hierauf und das mit dem Handle dürfte also eh klappen.<br />
Trotzdem wird die KeyboardProc() nicht aufgerufen.</p>
<p>Funktioniert das etwa mit NTServices nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/753799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/753799</guid><dc:creator><![CDATA[testheini]]></dc:creator><pubDate>Sun, 27 Mar 2005 17:16:00 GMT</pubDate></item><item><title><![CDATA[Reply to Wieder einmal: SetWindowsHookEx() on Sun, 27 Mar 2005 18:39:00 GMT]]></title><description><![CDATA[<p>Also mittlerweile habe ich durch Zufall herausgefunden, daß alles funktioniert, wenn man &quot;Datenaustausch zwischen Dienst und Desktop&quot; unter Systemsteuerung/Dienste anhakt.<br />
Und zwar MANUELL. Mein Dienst hat sich dieses Häkchen per registry key selbst gesetzt ..hehe.. anscheinend MUSS diese Option vom User gesetzt werden...</p>
<p>In der Registry gibts unter LOCAL_MACHINE\SYSTEM\CCSet\Services\&lt;Servicename&gt; einen Unterordner &quot;Security&quot; - da steht ein dämlicher Hash oder so drin..<br />
Warscheinlich hat das was damit zu tun..<br />
so, hätt ich mir alle fragen selbst beantwortet. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>naja, trotzdem danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/753847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/753847</guid><dc:creator><![CDATA[testheini]]></dc:creator><pubDate>Sun, 27 Mar 2005 18:39:00 GMT</pubDate></item><item><title><![CDATA[Reply to Wieder einmal: SetWindowsHookEx() on Sun, 27 Mar 2005 20:44:24 GMT]]></title><description><![CDATA[<p>***** Problem gelöst *****</p>
<p>Manuelles Setzen des entsprechenden Reg Keys hilft nicht. Man muss den Prozess einfach wie folgt erstellen:</p>
<p>[cpp]SC_HANDLE service = CreateService(serviceControlManager, szServiceName, szServiceDispName, SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS <strong>| SERVICE_INTERACTIVE_PROCESS</strong>, SERVICE_AUTO_START, SERVICE_ERROR_IGNORE, szPath, 0, 0, 0, 0, 0);[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/753916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/753916</guid><dc:creator><![CDATA[testheini]]></dc:creator><pubDate>Sun, 27 Mar 2005 20:44:24 GMT</pubDate></item></channel></rss>