<?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[Tastatur einlesen!!]]></title><description><![CDATA[<p>Hi,</p>
<p>ich versuche einen Trainer für Spiele zu programmieren. Ich möchte ihn im Hintergrund laufen lassen, und er soll auf Tastatureingaben (z.B F8) reagieren und dann in der jeweiligen Speicheradresse den Wert ändern. Klappt auch alles, ausser....</p>
<p><strong>Das Problem:</strong></p>
<p>Das Prog, das die Tasten einließt verlangsamt das System so stark, das das Spiel zu stark ruckelt.</p>
<p><strong>Der Quellcode:</strong></p>
<pre><code>#include &lt;windows.h&gt;
#include &lt;iostream&gt;

using namespace std;

int main()
{
  SHORT KeyState;
  SHORT ArrKeyState[256];
  long CheckSum;
  long OldCheckSum;

  OldCheckSum = 987654;          // dummy

  while (1)
  {
    CheckSum = 0;
    for (int i = 0; i &lt; 256; i++)
    {
      KeyState = GetAsyncKeyState(i);
      CheckSum += KeyState;
      ArrKeyState[i] = KeyState;

    }

    if (OldCheckSum != CheckSum)
    {
      for (int i = 0; i &lt; 256; i++)
      {
        // -32767 = KeyDown
        if (ArrKeyState[i] == -32767)

        {
          cout &lt;&lt; &quot;Key &quot; &lt;&lt; i &lt;&lt; &quot; pressed. (&quot; &lt;&lt; (char) i &lt;&lt; &quot;)&quot; &lt;&lt; endl;
        }
      }
    }
    OldCheckSum = CheckSum;
  }
}
</code></pre>
<p><strong>Die Frage:</strong></p>
<p>Was in diesem Programm macht den Rechner so langsam?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/113658/tastatur-einlesen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 17:44:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/113658.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 25 Jun 2005 08:55:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 08:55:40 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich versuche einen Trainer für Spiele zu programmieren. Ich möchte ihn im Hintergrund laufen lassen, und er soll auf Tastatureingaben (z.B F8) reagieren und dann in der jeweiligen Speicheradresse den Wert ändern. Klappt auch alles, ausser....</p>
<p><strong>Das Problem:</strong></p>
<p>Das Prog, das die Tasten einließt verlangsamt das System so stark, das das Spiel zu stark ruckelt.</p>
<p><strong>Der Quellcode:</strong></p>
<pre><code>#include &lt;windows.h&gt;
#include &lt;iostream&gt;

using namespace std;

int main()
{
  SHORT KeyState;
  SHORT ArrKeyState[256];
  long CheckSum;
  long OldCheckSum;

  OldCheckSum = 987654;          // dummy

  while (1)
  {
    CheckSum = 0;
    for (int i = 0; i &lt; 256; i++)
    {
      KeyState = GetAsyncKeyState(i);
      CheckSum += KeyState;
      ArrKeyState[i] = KeyState;

    }

    if (OldCheckSum != CheckSum)
    {
      for (int i = 0; i &lt; 256; i++)
      {
        // -32767 = KeyDown
        if (ArrKeyState[i] == -32767)

        {
          cout &lt;&lt; &quot;Key &quot; &lt;&lt; i &lt;&lt; &quot; pressed. (&quot; &lt;&lt; (char) i &lt;&lt; &quot;)&quot; &lt;&lt; endl;
        }
      }
    }
    OldCheckSum = CheckSum;
  }
}
</code></pre>
<p><strong>Die Frage:</strong></p>
<p>Was in diesem Programm macht den Rechner so langsam?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/816840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816840</guid><dc:creator><![CDATA[mr_lou]]></dc:creator><pubDate>Sat, 25 Jun 2005 08:55:40 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 08:58:37 GMT]]></title><description><![CDATA[<p>mr_lou schrieb:</p>
<blockquote>
<p>Was in diesem Programm macht den Rechner so langsam?</p>
</blockquote>
<p>dein ansatz</p>
<p>du solltest nicht in ner while schleife die tasten prüfen, sondern dein programm sollte von windows benachrichtigt werden wenn eine taste gedrückt wird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/816843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816843</guid><dc:creator><![CDATA[Sovok]]></dc:creator><pubDate>Sat, 25 Jun 2005 08:58:37 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 09:01:35 GMT]]></title><description><![CDATA[<p>wie geht das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/816846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816846</guid><dc:creator><![CDATA[mr_lou]]></dc:creator><pubDate>Sat, 25 Jun 2005 09:01:35 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 09:13:28 GMT]]></title><description><![CDATA[<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/keyboardproc.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/keyboardproc.asp</a><br />
<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/lowlevelkeyboardproc.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/lowlevelkeyboardproc.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/816850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816850</guid><dc:creator><![CDATA[Sovok]]></dc:creator><pubDate>Sat, 25 Jun 2005 09:13:28 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 09:13:59 GMT]]></title><description><![CDATA[<p>könnte irgendjemand vielleicht ein paar schlüsselwörter posten, damit ich wenigstens mal in einschlägigen Suchmaschinen suchen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/816851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816851</guid><dc:creator><![CDATA[mr_lou]]></dc:creator><pubDate>Sat, 25 Jun 2005 09:13:59 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 09:15:05 GMT]]></title><description><![CDATA[<p>danke, ich werd mir das mal durchlesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/816852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816852</guid><dc:creator><![CDATA[mr_lou]]></dc:creator><pubDate>Sat, 25 Jun 2005 09:15:05 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 09:18:12 GMT]]></title><description><![CDATA[<p>aber bevor du es lie<strong>ß</strong>t, probier doch mal</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt; 
#include &lt;iostream&gt; 

using namespace std; 

int main() 
{ 
  SHORT KeyState; 
  SHORT ArrKeyState[256]; 
  long CheckSum; 
  long OldCheckSum; 

  OldCheckSum = 987654;          // dummy 

  while (1) 
  { 
    Sleep(10);
    CheckSum = 0; 
    for (int i = 0; i &lt; 256; i++) 
    { 
      KeyState = GetAsyncKeyState(i); 
      CheckSum += KeyState; 
      ArrKeyState[i] = KeyState; 

    } 

    if (OldCheckSum != CheckSum) 
    { 
      for (int i = 0; i &lt; 256; i++) 
      { 
        // -32767 = KeyDown 
        if (ArrKeyState[i] == -32767) 

        { 
          cout &lt;&lt; &quot;Key &quot; &lt;&lt; i &lt;&lt; &quot; pressed. (&quot; &lt;&lt; (char) i &lt;&lt; &quot;)&quot; &lt;&lt; endl; 
        } 
      } 
    } 
    OldCheckSum = CheckSum; 
  } 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/816853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816853</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 25 Jun 2005 09:18:12 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 09:28:19 GMT]]></title><description><![CDATA[<p>Danke, es klappt!! <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="🙂"
    /> <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="🙂"
    /> <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 />
Wenn mein GTA: San Andreas Trainer fertig ist erwähn ich dich in den Credits!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/816856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816856</guid><dc:creator><![CDATA[mr_lou]]></dc:creator><pubDate>Sat, 25 Jun 2005 09:28:19 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 09:33:35 GMT]]></title><description><![CDATA[<p>mr_lou schrieb:</p>
<blockquote>
<p>Danke, es klappt!! <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="🙂"
    /> <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="🙂"
    /> <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 />
Wenn mein GTA: San Andreas Trainer fertig ist erwähn ich dich in den Credits!</p>
</blockquote>
<p>ob er das will? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/816859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816859</guid><dc:creator><![CDATA[fffffff]]></dc:creator><pubDate>Sat, 25 Jun 2005 09:33:35 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 09:35:54 GMT]]></title><description><![CDATA[<p>wenns ein nocd-crack wär, würd ich verstehen, aber was ist denn an einem trainer schlimm?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/816860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816860</guid><dc:creator><![CDATA[mr_LOU]]></dc:creator><pubDate>Sat, 25 Jun 2005 09:35:54 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 09:37:16 GMT]]></title><description><![CDATA[<p>mr_lou schrieb:</p>
<blockquote>
<p>Danke, es klappt!! <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="🙂"
    /> <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="🙂"
    /> <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 />
Wenn mein GTA: San Andreas Trainer fertig ist erwähn ich dich in den Credits!</p>
</blockquote>
<p>und am schluß schreibste noch rein, ich hätte emplohlen, mit 100Hz alle tasten zu pollen, statt Sovoks hook zu nehmen.</p>
<p>ich möchte klarstellen, daß Sovoks methode auf jeden fall vorzuziehen ist. das rettende Sleep() sollste immer in poll-schleifen einbauen, um ganz viel prozessorzeit zu sparen. aber pollen soll immer nur notlösung sein.</p>
<p>ich dachte mir, das ist die aber im momentchen erstmal egal und du kümmerst dich lieber um das speicherzellenschreiben. tu das. aber später, wenn es langsam fertige form annimmt, wirf bitte die poll-schleife raus.</p>
<p>und schreib in die credits, ich hätte geschrieben, sovok solle da rein, oder sowas. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/816861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816861</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 25 Jun 2005 09:37:16 GMT</pubDate></item><item><title><![CDATA[Reply to Tastatur einlesen!! on Sat, 25 Jun 2005 09:41:44 GMT]]></title><description><![CDATA[<p>alles klar!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/816865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/816865</guid><dc:creator><![CDATA[mr_lou]]></dc:creator><pubDate>Sat, 25 Jun 2005 09:41:44 GMT</pubDate></item></channel></rss>