<?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[Hookproblem]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe eine Frage zu meinem derzeitigem Projekt, ich will, dass bei einem bestimmten Programm, egal welche Taste man drückt immer ein bestimmter Text ausgegeben wird. Ich regle das mit einem Hook, den ich auf das Programm ansetze. Der Hook fängt alle WM_CHAR Nachrichten ab und setzt die Nachricht gleich mit einem char Array, der mit einer index Varialbe durchlaufern wird. Das ganze Funktioniert tadelos, wenn der char Array z.b mit dem String &quot;Hallo Welt!\0&quot; gefüllt ist, kann ich 5 mal die Taste &lt;R&gt; drücken und im aktiven Editorfeld des Programms erscheint dann trozdem &quot;Hallo&quot;. Nur Zeilenumbrüche werden doppelt dargestellt! Wiso ist das so? Hier der relevante Code des Hook:</p>
<pre><code class="language-cpp">MSG *Nachricht;

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

switch(nCode) 
{ 
case HC_ACTION: 
Nachricht=(MSG*) lParam; 
if(Nachricht-&gt;message==WM_CHAR) 
{ 

/*Der Char Array Schrebivorlage und der integer zaehler sind gloabal deklariert*/
Nachricht-&gt;wParam=Schreibvorlage[zaehler]);

lParam=(LPARAM)Nachricht; 
zaehler++; 
return CallNextHookEx(hook,nCode,wParam,lParam); 
} 
default: 
break; 
} 
return 0; 
}
</code></pre>
<p>Im Voraus Danke für alle Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/140326/hookproblem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 02:05:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/140326.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Mar 2006 07:18:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hookproblem on Tue, 14 Mar 2006 07:18:10 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe eine Frage zu meinem derzeitigem Projekt, ich will, dass bei einem bestimmten Programm, egal welche Taste man drückt immer ein bestimmter Text ausgegeben wird. Ich regle das mit einem Hook, den ich auf das Programm ansetze. Der Hook fängt alle WM_CHAR Nachrichten ab und setzt die Nachricht gleich mit einem char Array, der mit einer index Varialbe durchlaufern wird. Das ganze Funktioniert tadelos, wenn der char Array z.b mit dem String &quot;Hallo Welt!\0&quot; gefüllt ist, kann ich 5 mal die Taste &lt;R&gt; drücken und im aktiven Editorfeld des Programms erscheint dann trozdem &quot;Hallo&quot;. Nur Zeilenumbrüche werden doppelt dargestellt! Wiso ist das so? Hier der relevante Code des Hook:</p>
<pre><code class="language-cpp">MSG *Nachricht;

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

switch(nCode) 
{ 
case HC_ACTION: 
Nachricht=(MSG*) lParam; 
if(Nachricht-&gt;message==WM_CHAR) 
{ 

/*Der Char Array Schrebivorlage und der integer zaehler sind gloabal deklariert*/
Nachricht-&gt;wParam=Schreibvorlage[zaehler]);

lParam=(LPARAM)Nachricht; 
zaehler++; 
return CallNextHookEx(hook,nCode,wParam,lParam); 
} 
default: 
break; 
} 
return 0; 
}
</code></pre>
<p>Im Voraus Danke für alle Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1015801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1015801</guid><dc:creator><![CDATA[Hepheistos]]></dc:creator><pubDate>Tue, 14 Mar 2006 07:18:10 GMT</pubDate></item><item><title><![CDATA[Reply to Hookproblem on Wed, 15 Mar 2006 11:56:04 GMT]]></title><description><![CDATA[<p>Hepheistos schrieb:</p>
<blockquote>
<p>Der Hook fängt alle WM_CHAR Nachrichten ab und setzt die Nachricht gleich mit einem char Array, der mit einer index Varialbe durchlaufern wird.</p>
<pre><code class="language-cpp">/*Der Char Array Schrebivorlage und der integer zaehler sind gloabal deklariert*/
Nachricht-&gt;wParam=Schreibvorlage[zaehler]);
</code></pre>
</blockquote>
<p>Wie wärs mit<br />
Schreibvorlage[zaehler] = Nachricht-&gt;wParam; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016621</guid><dc:creator><![CDATA[Hallifax.]]></dc:creator><pubDate>Wed, 15 Mar 2006 11:56:04 GMT</pubDate></item><item><title><![CDATA[Reply to Hookproblem on Wed, 15 Mar 2006 14:03:36 GMT]]></title><description><![CDATA[<p>Wiso, ich will ja die WM_CHAR nachrichten nicht aufzeichnen, sondern dem akteullen Eelement des char Array gleichsetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016743</guid><dc:creator><![CDATA[Hepheistos]]></dc:creator><pubDate>Wed, 15 Mar 2006 14:03:36 GMT</pubDate></item><item><title><![CDATA[Reply to Hookproblem on Wed, 15 Mar 2006 14:12:29 GMT]]></title><description><![CDATA[<p>Hepheistos schrieb:</p>
<blockquote>
<p>Nur Zeilenumbrüche werden doppelt dargestellt! Wiso ist das so? Hier der relevante Code des Hook:</p>
</blockquote>
<p>Zeilenumbrüche werden von Windows als zwei Zeichen \r\n interpretiert - also bekommst du vermutlich auch zwei WM_CHAR Nachrichten, von denen du dann eine entsorgen mußt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1016762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1016762</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 15 Mar 2006 14:12:29 GMT</pubDate></item><item><title><![CDATA[Reply to Hookproblem on Thu, 16 Mar 2006 05:50:19 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Hepheistos schrieb:</p>
<blockquote>
<p>Nur Zeilenumbrüche werden doppelt dargestellt! Wiso ist das so? Hier der relevante Code des Hook:</p>
</blockquote>
<p>Zeilenumbrüche werden von Windows als zwei Zeichen \r\n interpretiert - also bekommst du vermutlich auch zwei WM_CHAR Nachrichten, von denen du dann eine entsorgen mußt.</p>
</blockquote>
<p>so isset ne...abba dat sin basics</p>
<p>und außerdem kann man das auch nicht mit jeder WM_ machen da gibt es so glaube ich in Erinnerung zu haben welche die man nicht abfangen kann um Sie innem 'Hook' zu verwerten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1017229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1017229</guid><dc:creator><![CDATA[Buddy Love]]></dc:creator><pubDate>Thu, 16 Mar 2006 05:50:19 GMT</pubDate></item></channel></rss>