<?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[ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben]]></title><description><![CDATA[<p>Wenn ich nen Virtual Key Code umwandle und den Buchstaben mit MessageBox ausgebe sehe ich den in groß/klein/sonderzeichen/..., aber schreibe ich das gleiche zeichen in ne Datei habe ich immer nur die Standardzeichen und für Shift nen komisches I ( sieht so aus: Ì).</p>
<p>Umwandeln tu ich es so:</p>
<pre><code class="language-cpp">BYTE buf[256];
WORD p;
GetKeyboardState (&amp;buf[0]);
ToAscii (wparam, lparam, &amp;buf[0], &amp;p, 0);
char ch = (char)p;
</code></pre>
<p>Gebe ich mir ch mit ner MessageBox aus (in nem char[2] mit '\0' am Ende) sehe ich das richtige Zeichen, gebe ich das gleiche Zeiche in nen ifstream aus, sehe<br />
ich zuerst das I von oben und danach das Standardzeichen der Taste.</p>
<p>Ich speichere die Zeichen in nem std::string und diesen schreibe ich in die Datei (textmodus).</p>
<p>Das Programm wird als ASCII kompiliert.</p>
<p>Edit:</p>
<p>Muss mich korrigieren, bei der Messagebox kommt zuerst das I und dann das richtige zeichen, damit wäre ich aber bereits zufrieden, das I kann man ja rausfiltern.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/86694/toascii-shift-und-alternative-zeichen-buchstaben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 18:30:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/86694.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Sep 2004 17:43:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Tue, 21 Sep 2004 20:00:39 GMT]]></title><description><![CDATA[<p>Wenn ich nen Virtual Key Code umwandle und den Buchstaben mit MessageBox ausgebe sehe ich den in groß/klein/sonderzeichen/..., aber schreibe ich das gleiche zeichen in ne Datei habe ich immer nur die Standardzeichen und für Shift nen komisches I ( sieht so aus: Ì).</p>
<p>Umwandeln tu ich es so:</p>
<pre><code class="language-cpp">BYTE buf[256];
WORD p;
GetKeyboardState (&amp;buf[0]);
ToAscii (wparam, lparam, &amp;buf[0], &amp;p, 0);
char ch = (char)p;
</code></pre>
<p>Gebe ich mir ch mit ner MessageBox aus (in nem char[2] mit '\0' am Ende) sehe ich das richtige Zeichen, gebe ich das gleiche Zeiche in nen ifstream aus, sehe<br />
ich zuerst das I von oben und danach das Standardzeichen der Taste.</p>
<p>Ich speichere die Zeichen in nem std::string und diesen schreibe ich in die Datei (textmodus).</p>
<p>Das Programm wird als ASCII kompiliert.</p>
<p>Edit:</p>
<p>Muss mich korrigieren, bei der Messagebox kommt zuerst das I und dann das richtige zeichen, damit wäre ich aber bereits zufrieden, das I kann man ja rausfiltern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/612196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/612196</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Tue, 21 Sep 2004 20:00:39 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Tue, 21 Sep 2004 20:59:56 GMT]]></title><description><![CDATA[<p>Evtl. solltest du p nicht in ein chatr umkopieren, sondern einfach nur den Pointer auf p nach (char <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title="*)"
      alt="😉"
    /> casten <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/612403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/612403</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 21 Sep 2004 20:59:56 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Wed, 22 Sep 2004 13:00:50 GMT]]></title><description><![CDATA[<p>Oops, das wird ja ein LPWORD und kein WORD erwartet, erklärt natürlich einiges</p>
]]></description><link>https://www.c-plusplus.net/forum/post/612794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/612794</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Wed, 22 Sep 2004 13:00:50 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Wed, 22 Sep 2004 13:11:35 GMT]]></title><description><![CDATA[<p>Jetzt stellt sich, aber immernoch die Frage wie ich die Zeichen da rausbekomme, weil nach (char*) casten funktioniert nicht, dann hab ich noch mehr 'I's.<br />
Es so zu versuchen wie bei der MessageBox funktioniert nur teilweise, nämlich so wie bisher auch.</p>
<p>Wieso wird das Zeichen überhaupt in nem Array aus WORDs gespeichert, bei ner Funktion die ToAscii heißt <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>
<p>SO sieht der Code derzeit aus</p>
<pre><code class="language-cpp">//Virtual Key in Ascii Zeichen umwandeln
BYTE buf[256];
WORD tmp[2];
LPWORD p = tmp;
GetKeyboardState (&amp;buf[0]);
ToAscii (wparam, lparam, &amp;buf[0], p, 0);

//Das zeichen in den Report schreiben
log &lt;&lt; (char*)p;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/612807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/612807</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Wed, 22 Sep 2004 13:11:35 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Wed, 22 Sep 2004 13:58:01 GMT]]></title><description><![CDATA[<p>willst du 'nen keylogger coden?<br />
guckst du: <a href="http://www.cppfrance.com/codes/KEYLOGGER/25458.aspx" rel="nofollow">http://www.cppfrance.com/codes/KEYLOGGER/25458.aspx</a><br />
verwendet auch 'ToAscii()' usw.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/612880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/612880</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Wed, 22 Sep 2004 13:58:01 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Wed, 22 Sep 2004 15:05:27 GMT]]></title><description><![CDATA[<p>Soll u.a. nen Keylogger beinhalten.</p>
<p>Hab mal den Code von denen angeschaut, die haben nur statt meinem lparam ne 0 als Parameter,<br />
habe das mal bei mir versucht, allerdings ohne Erfolg, es bleibt exakt gleich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/612936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/612936</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Wed, 22 Sep 2004 15:05:27 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Wed, 22 Sep 2004 17:40:39 GMT]]></title><description><![CDATA[<p>Falls die komischen Zeichen dahinter gewesen wären hätte ich gesagt, dass du einfach den Buffer vorher mit Nullen füllen musst, aber so fällt mir auch nichts ein <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/613086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/613086</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 22 Sep 2004 17:40:39 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Wed, 22 Sep 2004 18:11:11 GMT]]></title><description><![CDATA[<p>Schade <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="😞"
    /></p>
<p>Wo könnt ich, denn noch Fragen? Kenn sonst kein Forum wo so viele kompetente Leute sind <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/613115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/613115</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Wed, 22 Sep 2004 18:11:11 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Wed, 22 Sep 2004 18:25:58 GMT]]></title><description><![CDATA[<p>SirLant schrieb:</p>
<blockquote>
<p>Schade <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 />
Wo könnt ich, denn noch Fragen? Kenn sonst kein Forum wo so viele kompetente Leute sind <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="😞"
    /></p>
</blockquote>
<p>im usenet z.b. bei microsoft.win32.programmer o.ä.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/613131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/613131</guid><dc:creator><![CDATA[net 0]]></dc:creator><pubDate>Wed, 22 Sep 2004 18:25:58 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Sat, 25 Sep 2004 13:05:11 GMT]]></title><description><![CDATA[<p>Im Usenet konnte mir auch keiner helfen.</p>
<p>Aber ich weiß jetzt wo der Fehler liegt <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="😞"
    /></p>
<p>Die Funktion GetkeyboardState liefert nur den Status der VKEYS für die betreffende Message Queue und<br />
da ich ja fremde VKEYS abfange hat mein GetKeyboardState natürlich keine gültigen Werte.</p>
<p>Sobald ich tippe wenn meine GUI den Fokus hat funktioniert es nämlich.</p>
<p>Ich bin mir noch nicht so sicher wie man das jetzt lösen kann, ich kann mir ne eigene<br />
ToAscii Funktion basteln, wäre ja kein Problem die VKEYS bekomme ich ja, aber<br />
ich weiß halt nicht ob die Shift Taste gedrückt wird, da ich nur beim drücken<br />
1mal Informatiert werde, aber nicht wann sie losgelassen wird, oder ob sie noch<br />
aktiv ist. Gleiches gilt für die Alt Taste.</p>
<p>Gibts denn keine Funktion die mir den echten Keyboard-Status gibt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/614747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614747</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Sat, 25 Sep 2004 13:05:11 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Sat, 25 Sep 2004 13:08:49 GMT]]></title><description><![CDATA[<p>Evtl. kannst du mit <a href="http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/getasynckeystate.asp" rel="nofollow">GetAsyncKeyState</a> was anfangen <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/614754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614754</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 25 Sep 2004 13:08:49 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Sat, 25 Sep 2004 13:19:31 GMT]]></title><description><![CDATA[<p>An der Funktion bin ich gerade, nur verwende ich GetKeyState, allerdings hab ich keine<br />
Ahnung wie ich an das high order und low order bit komme <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="😞"
    /></p>
<p>So Bitspielereien waren noch nie meine stärke und ich bin mir nicht mal sicher wo die sitzen, man muss ja noch little und big enidan beachten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/614762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614762</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Sat, 25 Sep 2004 13:19:31 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Sat, 25 Sep 2004 14:23:01 GMT]]></title><description><![CDATA[<p>Einfach mit &amp; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Afaik dann z.B. so:</p>
<pre><code class="language-cpp">if(dwValueToCheckHighBit &amp; 0x80000000)
{
 // [...]
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/614789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614789</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 25 Sep 2004 14:23:01 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Sat, 25 Sep 2004 14:50:50 GMT]]></title><description><![CDATA[<p>Ja das wusst ich noch, nur hab ich keine Ahnung welches von den 16Bit das höchste und welches das kleinste ist *g*</p>
<p>Edit:</p>
<p>Ah jetzt ist es mir wieder eingefallen, da nen normaler pc ja little endian hat,<br />
ist es einfach das letzte Bit <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="🙂"
    /></p>
<p>Edit:</p>
<p>Also mit GetKeyState funktioniert es teilweise, aber mit GetAsyncKeyState steht in meiner log</p>
<blockquote>
<p>[else]Ì =&gt; 204<br />
[VK_SHIFT gesetzt] =&gt; %<br />
[VK_SHIFT gesetzt] =&gt; %<br />
[VK_SHIFT gesetzt] =&gt; %</p>
</blockquote>
<p>Da freut man sich doch ....</p>
<p>.... jedenfalls bis einem einfällt, dass man das jetzt nicht nur für das %-zeichen<br />
sondern für noch viele andere machen muss <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="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/614791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614791</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Sat, 25 Sep 2004 14:50:50 GMT</pubDate></item><item><title><![CDATA[Reply to ToAscii + Shift und alternative Zeichen&#x2F;Buchstaben on Sat, 25 Sep 2004 22:40:23 GMT]]></title><description><![CDATA[<p>Nach einiger Tüftelei kam ich auf die geniale Idee einfach den Puffer mit den Daten der Tasten<br />
vor einem Aufruf von ToAscii zu ändern.</p>
<p>Glücklicherweise stehen VK_SHIFT, VK_RMENU und VK_CAPITAL an den Stellen im Puffer wie ihre<br />
Wertigkeit ist.</p>
<p>ich dachte mir, dann schreib ich einfach vor ToAscii</p>
<pre><code class="language-cpp">if (GetAsyncKeyState (VK_SHIFT) &amp; 0x8000)
    buf[VK_SHIFT] = 0x80; //wenn höchstes Bit gesetzt ist, ist die Taste gedrückt
if (GetAsyncKeyState (VK_RMENU) &amp; 0x8000)
    buf[VK_RMENU] = 0x80; //Alt Gr gedrückt
if (GetAsyncKeyState (VK_CAPITAL) &amp; 0x8000)
    buf[VK_CAPITAL] = 0x81; //Das niedrigste Bit signalisiert &quot;toggeln&quot;
</code></pre>
<p>Das Ergebnis ist aber total Müll und nicht wie erwartet die richtigen Zeichen.</p>
<p>Jetzt die Frage, hab ich was falsch verstanden bei der Beschreibung von GetKeyboardState</p>
<blockquote>
<p>When the function returns, each member of the array pointed to by the lpKeyState parameter contains status data for a virtual key. If the high-order bit is 1, the key is down; otherwise, it is up. If the key is a toggle key, for example CAPS LOCK, then the low-order bit is 1 when the key is toggled and is 0 if the key is untoggled. The low-order bit is meaningless for non-toggle keys. A toggle key is said to be toggled when it is turned on. A toggle key's indicator light (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled.</p>
</blockquote>
<p>Edit:</p>
<p>Ok ich hab es jetzt hinbekommen <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="🙂"
    /></p>
<p>Für alle die es interressiert:</p>
<pre><code class="language-cpp">BYTE buf[256];
WORD ch;
UINT scancode = 0;

GetKeyboardState (buf);

buf[wparam] = 0x80;    //Die gedrückte Taste muss von &quot;hand&quot; reingeschrieben werden

if (GetAsyncKeyState (VK_SHIFT) &amp; 0x8000) //Wenn Shift gedrückt wird einfügen
    buf[VK_SHIFT] = 0x80;

ToAscii (wparam, scancode, &amp;buf[0], &amp;ch, 0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/614935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/614935</guid><dc:creator><![CDATA[SirLant]]></dc:creator><pubDate>Sat, 25 Sep 2004 22:40:23 GMT</pubDate></item></channel></rss>