<?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[KeyBoardHook geht nicht]]></title><description><![CDATA[<p>Hi,<br />
ich habe vor einen Keyboardhook zu proggen.<br />
Ich bin zur Zeit gerade bei der DLL.</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#include &lt;windows.h&gt;
#pragma hdrstop

#pragma argsused
HHOOK HookHandle;

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
        return 1;
}
//---------------------------------------------------------------------------
__declspec (dllexport) LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wparam,LPARAM lparam)
{
        if(nCode == HC_ACTION)
        {

        }else{

        }

        return (CallNextHookEx(HookHandle,nCode,wparam,lparam));
}
//---------------------------------------------------------------------------
__declspec (dllexport) bool InstallHook(void)
{
        HookHandle = NULL;
        HookHandle = SetWindowsHookEx(WH_KEYBOARD,&amp;KeyboardProc,HInstance,NULL);
        if (HookHandle == NULL)
        {
                return false;
        }else{
                return true;
        }
}
//---------------------------------------------------------------------------
__declspec (dllexport) bool UninstallHook(void)
{
        return (UnhookWindowsHookEx(HookHandle));
}
</code></pre>
<p>Allerdings kommen 2 Errors.</p>
<ol>
<li></li>
</ol>
<blockquote>
<p>[C++ Error] dll.cpp(50): E2034 Cannot convert 'long (__stdcall *)(int,unsigned int,long)' to 'int (__stdcall *)()'</p>
</blockquote>
<ol start="2">
<li></li>
</ol>
<blockquote>
<p>[C++ Error] dll.cpp(50): E2342 Type mismatch in parameter 'lpfn' (wanted 'int (__stdcall *)()', got 'long (__stdcall *)(int,unsigned int,long)')</p>
</blockquote>
<p>Was könnte die Ursache dafür sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/147816/keyboardhook-geht-nicht</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 00:10:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/147816.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 20 May 2006 11:09:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sat, 20 May 2006 11:09:12 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe vor einen Keyboardhook zu proggen.<br />
Ich bin zur Zeit gerade bei der DLL.</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#include &lt;windows.h&gt;
#pragma hdrstop

#pragma argsused
HHOOK HookHandle;

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
        return 1;
}
//---------------------------------------------------------------------------
__declspec (dllexport) LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wparam,LPARAM lparam)
{
        if(nCode == HC_ACTION)
        {

        }else{

        }

        return (CallNextHookEx(HookHandle,nCode,wparam,lparam));
}
//---------------------------------------------------------------------------
__declspec (dllexport) bool InstallHook(void)
{
        HookHandle = NULL;
        HookHandle = SetWindowsHookEx(WH_KEYBOARD,&amp;KeyboardProc,HInstance,NULL);
        if (HookHandle == NULL)
        {
                return false;
        }else{
                return true;
        }
}
//---------------------------------------------------------------------------
__declspec (dllexport) bool UninstallHook(void)
{
        return (UnhookWindowsHookEx(HookHandle));
}
</code></pre>
<p>Allerdings kommen 2 Errors.</p>
<ol>
<li></li>
</ol>
<blockquote>
<p>[C++ Error] dll.cpp(50): E2034 Cannot convert 'long (__stdcall *)(int,unsigned int,long)' to 'int (__stdcall *)()'</p>
</blockquote>
<ol start="2">
<li></li>
</ol>
<blockquote>
<p>[C++ Error] dll.cpp(50): E2342 Type mismatch in parameter 'lpfn' (wanted 'int (__stdcall *)()', got 'long (__stdcall *)(int,unsigned int,long)')</p>
</blockquote>
<p>Was könnte die Ursache dafür sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061490</guid><dc:creator><![CDATA[AceKiller73]]></dc:creator><pubDate>Sat, 20 May 2006 11:09:12 GMT</pubDate></item><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sat, 20 May 2006 11:23:33 GMT]]></title><description><![CDATA[<p>KeyboardProc muss nicht exportiert werden und du hast die Adresse der Funtion bei SetWindowsHookEx angegeben!</p>
<p>also das declsepec(dllexport) und den Adress-Operator entfernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061500</guid><dc:creator><![CDATA[qasdfgh]]></dc:creator><pubDate>Sat, 20 May 2006 11:23:33 GMT</pubDate></item><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sat, 20 May 2006 11:38:35 GMT]]></title><description><![CDATA[<p>Hmm geht irgendwie immer noch nich(gleiche Fehler).<br />
Aber müsste der Parameter bei SetWindowsHookEx nicht ein Pointer sein?</p>
<p>MFG Ace</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061512</guid><dc:creator><![CDATA[AceKiller73]]></dc:creator><pubDate>Sat, 20 May 2006 11:38:35 GMT</pubDate></item><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sat, 20 May 2006 11:39:46 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39383.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39383.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061514</guid><dc:creator><![CDATA[WebNubbi]]></dc:creator><pubDate>Sat, 20 May 2006 11:39:46 GMT</pubDate></item><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sat, 20 May 2006 11:53:09 GMT]]></title><description><![CDATA[<p>Hmm.<br />
Verstehe nicht ganz was mir das hilft?</p>
<p>MFG Ace</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061522</guid><dc:creator><![CDATA[AceKiller73]]></dc:creator><pubDate>Sat, 20 May 2006 11:53:09 GMT</pubDate></item><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sat, 20 May 2006 12:37:08 GMT]]></title><description><![CDATA[<p>Kontrolliere doch mal wo und wie HOOKPROC bei Dir deklariert ist. Ich sehe so keinen Fehler aber anscheinend ist bei Dir HOOKPROC als Funktion ohne Argumente deklariert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1061565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1061565</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 20 May 2006 12:37:08 GMT</pubDate></item><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sun, 21 May 2006 11:27:47 GMT]]></title><description><![CDATA[<p>Also ich habe das jetzt mit typisieren gelöst.<br />
Aber was meinst du mit fehlenden Argumenten?</p>
<p>MFG<br />
AcE</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1062023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1062023</guid><dc:creator><![CDATA[AceKiller73]]></dc:creator><pubDate>Sun, 21 May 2006 11:27:47 GMT</pubDate></item><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sun, 21 May 2006 15:21:15 GMT]]></title><description><![CDATA[<p>Nun ich lese das aus der Fehlermeldung. Der Compiler-Fehler lautet:<br />
'long (__stdcall *)(int,unsigned int,long)' to 'int (__stdcall *)()'</p>
<p>Also kann er eine Funktionszeiger der long returniert und int, unsigned int und long als Argument annimmt nicht in einen Funktionszeiger umwandeln, der int returniert und keine Argumente hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1062166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1062166</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sun, 21 May 2006 15:21:15 GMT</pubDate></item><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sun, 21 May 2006 15:46:56 GMT]]></title><description><![CDATA[<p>????<br />
Hmm verstehe ich nicht.<br />
Allerdings konnte ich das problem beheben, indem ich einfach:</p>
<pre><code class="language-cpp">__declspec (dllexport) bool InstallHook(void)
{
        HookHandle = NULL;
HookHandle= SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardHookProc,hDllInstance,NULL);

        if (HookHandle == NULL)
        {
                return false;
        }else{
                return true;
        }
}
</code></pre>
<p>Jetzt kopiliert er zwar alles anstandslos. Aber<br />
wenn ich die funktion in mein prog einbinde gibt mir</p>
<p>InstallHook() immer false zurück.</p>
<p>MFG Ace</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1062193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1062193</guid><dc:creator><![CDATA[AceKiller73]]></dc:creator><pubDate>Sun, 21 May 2006 15:46:56 GMT</pubDate></item><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sun, 21 May 2006 15:52:37 GMT]]></title><description><![CDATA[<p>SO hier der COde:</p>
<p>Programm:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop
#pragma comment(lib, &quot;keydll.lib&quot;)

#include &quot;prog.h&quot;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
__declspec(dllimport) int InstallHook() ;  //Als Übergabeparameter nur den Typ angeben.
__declspec(dllimport) int UninstallHook() ;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Label1-&gt;Caption=BoolToStr(InstallHook());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
UninstallHook();
}
//---------------------------------------------------------------------------
</code></pre>
<p>keydll:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;
#pragma hdrstop
#pragma argsused
HHOOK HookHandle;
FILE * f1;
HINSTANCE   hDllInstance ;

LRESULT CALLBACK KeyboardHookProc(int nCode,WPARAM wParam,
                            LPARAM lParam)
{
    if(nCode==HC_ACTION){
    f1 = fopen(&quot;C:\report.txt&quot;,&quot;w&quot;);
    }
    fclose(f1);
    LRESULT RetVal = CallNextHookEx( HookHandle, nCode, wParam, lParam );
    return  RetVal;
}
//---------------------------------------------------------------------------
__declspec (dllexport) bool InstallHook(void)
{
        HookHandle = NULL;
        HookHandle = SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardHookProc,hDllInstance,NULL);
        if (HookHandle == NULL)
        {
                return false;
        }else{
                return true;
        }
}
//---------------------------------------------------------------------------
__declspec (dllexport) bool UninstallHook(void)
{
        return (UnhookWindowsHookEx(HookHandle));
}
//---------------------------------------------------------------------------
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1062197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1062197</guid><dc:creator><![CDATA[AceKiller73]]></dc:creator><pubDate>Sun, 21 May 2006 15:52:37 GMT</pubDate></item><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sun, 21 May 2006 16:44:02 GMT]]></title><description><![CDATA[<p>hDllInstance musst Du initialisieren mit dem Wert der in DllMain übergeben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1062227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1062227</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sun, 21 May 2006 16:44:02 GMT</pubDate></item><item><title><![CDATA[Reply to KeyBoardHook geht nicht on Sun, 21 May 2006 18:43:52 GMT]]></title><description><![CDATA[<p>Ja hab ich mir schon gedacht.<br />
Aber sry wenn ich das frage:<br />
Wie macht man das?</p>
<p>Also einfach HInstace davor setzen?</p>
<p>Edit:Sry hätte besser lesen sollen.</p>
<p>Danke jetzt gehts.</p>
<p>MANY THX!!! Weitere fragen werden kommen :D:D:D:D.<br />
MFG ace</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1062317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1062317</guid><dc:creator><![CDATA[AceKiller73]]></dc:creator><pubDate>Sun, 21 May 2006 18:43:52 GMT</pubDate></item></channel></rss>