<?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 will nicht :-((]]></title><description><![CDATA[<p>So das mit meiner DLL funzt ja endlich <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 />
Hier der Source:</p>
<pre><code class="language-cpp">#define MAKE_DLL

// INCLUDES //////////////////////////////////////////////////////////////

#include &lt;windows.h&gt;
#include &lt;fstream&gt;
#include &quot;dll.h&quot;

// DEFINES ///////////////////////////////////////////////////////////////

// CONSTANTS /////////////////////////////////////////////////////////////

// GLOBALS ///////////////////////////////////////////////////////////////

#pragma data_seg (&quot;shared&quot;)
int iNumInstances = 0;
int iKeystrokes[255] = {0};
#pragma data_seg ()
#pragma comment(linker,&quot;/SECTION:shared,RWS&quot;)

// PROTOTYPES ////////////////////////////////////////////////////////////

LRESULT CALLBACK KeyboardHookProc(int, WPARAM, LPARAM);
void OutputKeystrokes();

// VARIABLES /////////////////////////////////////////////////////////////

HINSTANCE	hDllInstance;
HHOOK		hKeyboardHook;

// METHODS ///////////////////////////////////////////////////////////////

// FUNCTIONS /////////////////////////////////////////////////////////////

int APIENTRY DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
 	hDllInstance = hInstance;
 	return TRUE;
}

EXPORT BOOL CALLBACK InstallHooks(void)
{
    hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardHookProc,hDllInstance,0 );  

    if (hKeyboardHook == NULL)
    {
         return FALSE;
    }

    return TRUE;
}

EXPORT BOOL CALLBACK UnInstallHooks(void)
{
    OutputKeystrokes();
    return UnhookWindowsHookEx(hKeyboardHook);
}

LRESULT CALLBACK KeyboardHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{

	if(nCode &lt; 0)
		return CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);

    // Verhindern das eine Nachricht mehrmals verarbeitet wird.
	if(nCode == HC_ACTION)
    {
        // Prüfen ob die Taste nicht gedrückt gehalten wurde.
        // Wenn dies der Fall ist, ist das 31. Bit _nicht_ gesetzt.
        if (!(lParam&amp;0x40000000))
        {
            iKeystrokes[wParam]++;
        }
    }

	return CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);
}

void OutputKeystrokes()
{
    std::ofstream out(&quot;c:\\kbhook.txt&quot;);

    for (int i='A'; i&lt;='Z'; i++)
    {
        out &lt;&lt; (char)i &lt;&lt; &quot; = &quot; &lt;&lt; iKeystrokes[i] &lt;&lt; &quot;\n&quot;;
    }
}

//////////////////////////////////////////////////////////////////////////
</code></pre>
<p>Und &quot;dll.h&quot;</p>
<pre><code class="language-cpp">#ifdef __cplusplus
#define EXPORT extern &quot;C&quot; __declspec (dllexport)
#else
#define EXPORT __declspec (dllexport)
#endif

EXPORT BOOL CALLBACK InstallHooks(void);
EXPORT BOOL CALLBACK UnInstallHooks(void);
</code></pre>
<p>Aber er will den Hook nicht installieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Kann jemand erkennen an was das liegen kann?</p>
<p>Danke im voraus,<br />
Mr. DLL</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/137918/setwindowshookex-will-nicht</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Jul 2026 19:38:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/137918.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Feb 2006 20:12:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SetWindowsHookEx will nicht :-(( on Tue, 21 Feb 2006 20:12:29 GMT]]></title><description><![CDATA[<p>So das mit meiner DLL funzt ja endlich <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 />
Hier der Source:</p>
<pre><code class="language-cpp">#define MAKE_DLL

// INCLUDES //////////////////////////////////////////////////////////////

#include &lt;windows.h&gt;
#include &lt;fstream&gt;
#include &quot;dll.h&quot;

// DEFINES ///////////////////////////////////////////////////////////////

// CONSTANTS /////////////////////////////////////////////////////////////

// GLOBALS ///////////////////////////////////////////////////////////////

#pragma data_seg (&quot;shared&quot;)
int iNumInstances = 0;
int iKeystrokes[255] = {0};
#pragma data_seg ()
#pragma comment(linker,&quot;/SECTION:shared,RWS&quot;)

// PROTOTYPES ////////////////////////////////////////////////////////////

LRESULT CALLBACK KeyboardHookProc(int, WPARAM, LPARAM);
void OutputKeystrokes();

// VARIABLES /////////////////////////////////////////////////////////////

HINSTANCE	hDllInstance;
HHOOK		hKeyboardHook;

// METHODS ///////////////////////////////////////////////////////////////

// FUNCTIONS /////////////////////////////////////////////////////////////

int APIENTRY DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
 	hDllInstance = hInstance;
 	return TRUE;
}

EXPORT BOOL CALLBACK InstallHooks(void)
{
    hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardHookProc,hDllInstance,0 );  

    if (hKeyboardHook == NULL)
    {
         return FALSE;
    }

    return TRUE;
}

EXPORT BOOL CALLBACK UnInstallHooks(void)
{
    OutputKeystrokes();
    return UnhookWindowsHookEx(hKeyboardHook);
}

LRESULT CALLBACK KeyboardHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{

	if(nCode &lt; 0)
		return CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);

    // Verhindern das eine Nachricht mehrmals verarbeitet wird.
	if(nCode == HC_ACTION)
    {
        // Prüfen ob die Taste nicht gedrückt gehalten wurde.
        // Wenn dies der Fall ist, ist das 31. Bit _nicht_ gesetzt.
        if (!(lParam&amp;0x40000000))
        {
            iKeystrokes[wParam]++;
        }
    }

	return CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);
}

void OutputKeystrokes()
{
    std::ofstream out(&quot;c:\\kbhook.txt&quot;);

    for (int i='A'; i&lt;='Z'; i++)
    {
        out &lt;&lt; (char)i &lt;&lt; &quot; = &quot; &lt;&lt; iKeystrokes[i] &lt;&lt; &quot;\n&quot;;
    }
}

//////////////////////////////////////////////////////////////////////////
</code></pre>
<p>Und &quot;dll.h&quot;</p>
<pre><code class="language-cpp">#ifdef __cplusplus
#define EXPORT extern &quot;C&quot; __declspec (dllexport)
#else
#define EXPORT __declspec (dllexport)
#endif

EXPORT BOOL CALLBACK InstallHooks(void);
EXPORT BOOL CALLBACK UnInstallHooks(void);
</code></pre>
<p>Aber er will den Hook nicht installieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Kann jemand erkennen an was das liegen kann?</p>
<p>Danke im voraus,<br />
Mr. DLL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999758</guid><dc:creator><![CDATA[Mr. DLL]]></dc:creator><pubDate>Tue, 21 Feb 2006 20:12:29 GMT</pubDate></item></channel></rss>