<?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[Keyboard Scancodes]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich kennen bei einem Tastendruck<br />
- Tastatur scancode<br />
- NumLock an/aus<br />
- CapsLock an/aus<br />
- linke und recht Shift-Taste gedrückt ja/nein<br />
- linke und recht Control-Taste gedrückt ja/nein<br />
- linke und recht Alt-Taste gedrückt ja/nein<br />
kennt jemand einen Weg das in ein &quot;lesbares&quot; Zeichen umzuwandlen?<br />
z.B.<br />
CapsLock aus + Shift gedrückt + Taste5 = %</p>
<p>Das einzige das mir eingefallen ist, wäre die Eingaben zu simulieren was ich aber eigentlich vermeiden möchte.</p>
<p>vielen Danke schon einemal im vorraus <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="😉"
    /></p>
<p>cya</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/103165/keyboard-scancodes</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 16:56:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/103165.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 05 Mar 2005 14:51:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Keyboard Scancodes on Sat, 05 Mar 2005 14:51:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich kennen bei einem Tastendruck<br />
- Tastatur scancode<br />
- NumLock an/aus<br />
- CapsLock an/aus<br />
- linke und recht Shift-Taste gedrückt ja/nein<br />
- linke und recht Control-Taste gedrückt ja/nein<br />
- linke und recht Alt-Taste gedrückt ja/nein<br />
kennt jemand einen Weg das in ein &quot;lesbares&quot; Zeichen umzuwandlen?<br />
z.B.<br />
CapsLock aus + Shift gedrückt + Taste5 = %</p>
<p>Das einzige das mir eingefallen ist, wäre die Eingaben zu simulieren was ich aber eigentlich vermeiden möchte.</p>
<p>vielen Danke schon einemal im vorraus <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="😉"
    /></p>
<p>cya</p>
]]></description><link>https://www.c-plusplus.net/forum/post/738123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/738123</guid><dc:creator><![CDATA[ScriptGod]]></dc:creator><pubDate>Sat, 05 Mar 2005 14:51:22 GMT</pubDate></item><item><title><![CDATA[Reply to Keyboard Scancodes on Sat, 05 Mar 2005 18:07:30 GMT]]></title><description><![CDATA[<p>WM_CHAR (du brauchst TranslateMessage() in deiner MessageLoop)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/738251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/738251</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Sat, 05 Mar 2005 18:07:30 GMT</pubDate></item><item><title><![CDATA[Reply to Keyboard Scancodes on Sat, 05 Mar 2005 20:09:45 GMT]]></title><description><![CDATA[<p>Danke mal für deine Antwort!</p>
<p>Aber das Problem ist, das ich diese Tastatureingaben nicht selbst bekommen. Ich lese die Daten aus einer Log eines anderen Programms aus, das im Kernel (Mode) arbeitet und deshalb kein Zugriff auf lokal Einstellungen hat. Nun möchte ich diese im User Bereich je nach lokaler Tastatureinstellung ausgeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/738337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/738337</guid><dc:creator><![CDATA[ScriptGod]]></dc:creator><pubDate>Sat, 05 Mar 2005 20:09:45 GMT</pubDate></item><item><title><![CDATA[Reply to Keyboard Scancodes on Sun, 06 Mar 2005 13:27:10 GMT]]></title><description><![CDATA[<p>Achso, jetzt versteh ich die Frage auch richtig.<br />
Das müsste mit TranslateMessage funktionieren. TranslateMessage macht, wenn ich mich nicht irre, genau das was du willst, allerdings für WM_KEYDOWN-Nachrichten. Die Struktur, die TranslateMessage erwartet kannst du ja so befüllen, als würde eine WM_KEYDOWN-Nachricht vom System generiert werden. Also für 'message' gibst du WM_KEYDOWN an, 'hwnd' is egal, 'time' und 'pt' auch. In 'wParam' hat WM_KEYDOWN den Key-Code und in 'lParam' sind die anderen Informationen, die du ja hast (hier findest du das genaue Format [vieleicht ist es bei dir ja schon so gespeichert] <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputmessages/wm_keydown.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputmessages/wm_keydown.asp</a> ).</p>
<p>Kann sein, dass das auch einfacher geht, wüsste jetzt aber nicht wie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/738706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/738706</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Sun, 06 Mar 2005 13:27:10 GMT</pubDate></item><item><title><![CDATA[Reply to Keyboard Scancodes on Sun, 06 Mar 2005 18:07:49 GMT]]></title><description><![CDATA[<p>ok, thx mal</p>
<p>aber da Problem ist, irgendwie krieg ich das nicht richtig simuliert ob Shift, Alt, NumLock usw. gedrückt sind</p>
<p>Das leifert ein kleins &quot;r&quot; obwohl es wegen Shift, ein großes &quot;R&quot; sein müsste...</p>
<pre><code class="language-cpp">HWND hWnd = CreateWindow( &quot;EDIT&quot;, NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL );

char cChar;
GetChar( &amp;cChar, hWnd, 0x13, false, false, true, false, false, false, false, false );

bool GetChar( char *pOutChar, HWND hWnd,
			  UINT nScanCode,
			  bool nNumLock, bool bCapsLock,
			  bool bLShift, bool bRShift,
			  bool bLCtrl, bool bRCtrl,
			  bool bLAlt, bool bRAlt )
{
	MSG Msg = { 0 };
	UINT nVirtKey;

	Msg.hwnd	= hWnd;
	Msg.message = WM_KEYDOWN;

	// modifiers
	if( bLShift )
	{
		Msg.wParam	= VK_LSHIFT;
		Msg.lParam	= 0x2a &gt;&gt; 16;
		TranslateMessage( &amp;Msg );
	}
	// ...

	// key
	nVirtKey = MapVirtualKey( nScanCode, 1 );
	Msg.wParam	= nVirtKey;
	Msg.lParam	= nScanCode &gt;&gt; 16;
	TranslateMessage( &amp;Msg );

	// get char from message
	if( PeekMessage( &amp;Msg, hWnd, 0, 0, PM_REMOVE ) )
	{
		if( Msg.message == WM_CHAR )
		{
			*pOutChar = (char)Msg.wParam;
			return true;
		}
	}

	return false;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/738934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/738934</guid><dc:creator><![CDATA[ScriptGod]]></dc:creator><pubDate>Sun, 06 Mar 2005 18:07:49 GMT</pubDate></item><item><title><![CDATA[Reply to Keyboard Scancodes on Mon, 07 Mar 2005 10:21:22 GMT]]></title><description><![CDATA[<p>Mmmhh, habs jetzt auch mal probiert, so geht es wohl wirklich nicht <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="😞"
    /> . Ich hab aber noch eine Idee, wie wärs mit einer Tabelle? Wenn (Shift xor CapsLock)==1 wird in der Tabelle für Großbuchstaben das Zeichen zum Scancode rausgesucht und sonst in der Tabelle für Kleinbuchstaben, evtl. noch eine Sonderbehandlung für Alt Gr und Numlock. Dann hast du schon mal das Meiste. Vieleicht kriegt man so ne Tabelle auch mit ner Windowsfunktion, sonst würde es ja nur für deutsche Tastaturen funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/739337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/739337</guid><dc:creator><![CDATA[D*niel *chumann]]></dc:creator><pubDate>Mon, 07 Mar 2005 10:21:22 GMT</pubDate></item><item><title><![CDATA[Reply to Keyboard Scancodes on Mon, 07 Mar 2005 13:19:19 GMT]]></title><description><![CDATA[<p>Also für die standard AT-101/102 Tastatur und standard layout (US) hab ich mir so eine Tabelle schon gebastelt - die Definitionen bietet Mircrosoft, da gibts auch keine Sonderbehandlung für AltGr (Right Alt) ist wohl eine allein nicht englische Sache.<br />
Aber das Problem sind dann wieder die anderen Sprachen, es sollte am besten auf anderen oder am besten allen Sprachen laufen.</p>
<p>Solche eine Tabelle für die Sprache wäre auch besser als so rumzutricksen, aber ich habe keine Ahnung, wo unter Windows ich die Tabelle finden kann, die gerade aktiv ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/739525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/739525</guid><dc:creator><![CDATA[ScriptGod]]></dc:creator><pubDate>Mon, 07 Mar 2005 13:19:19 GMT</pubDate></item></channel></rss>