<?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[Standard-Tastaturlayout ändern]]></title><description><![CDATA[<p>Hi,</p>
<p>wie kann man denn per WinAPI das Standard-Eingabegebietsschema ändern ?<br />
Mit LoadKeyboardLayout gehts ja nur für die aktuelle Anwendung / Thread, ich will aber das Standard-Schema ändern, so dass jede Anwendung dann das Schema benutzt.</p>
<p>Hat jemand damit Erfahrung oder ein Beispiel ??</p>
<p>Wäre sehr dankbar !!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/240257/standard-tastaturlayout-ändern</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 04:07:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/240257.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 May 2009 11:44:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Mon, 04 May 2009 11:44:29 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wie kann man denn per WinAPI das Standard-Eingabegebietsschema ändern ?<br />
Mit LoadKeyboardLayout gehts ja nur für die aktuelle Anwendung / Thread, ich will aber das Standard-Schema ändern, so dass jede Anwendung dann das Schema benutzt.</p>
<p>Hat jemand damit Erfahrung oder ein Beispiel ??</p>
<p>Wäre sehr dankbar !!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705243</guid><dc:creator><![CDATA[R3dNeXX]]></dc:creator><pubDate>Mon, 04 May 2009 11:44:29 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Mon, 04 May 2009 15:18:15 GMT]]></title><description><![CDATA[<p>Vielleicht mit <em>SystemParametersInfo()</em> mit <em>SPI_SETDEFAULTINPUTLANG</em> ?</p>
<p>Siehe <a href="http://msdn.microsoft.com/en-us/library/ms724947.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/ms724947.aspx</a></p>
<p>HTH Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705416</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Mon, 04 May 2009 15:18:15 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Mon, 04 May 2009 15:29:04 GMT]]></title><description><![CDATA[<p>Hm, das sieht ziemlich gut aus !</p>
<p>Kann es erst morgen wieder probieren, werde mich nochmal melden, ob es geklappt hat !</p>
<p>Aber schonmal danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705427</guid><dc:creator><![CDATA[R3dNeXX]]></dc:creator><pubDate>Mon, 04 May 2009 15:29:04 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Tue, 05 May 2009 09:54:33 GMT]]></title><description><![CDATA[<p>Also funktioniert wunderbar:</p>
<pre><code class="language-cpp">nLangIdent = MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN);
BOOL bResult = SystemParametersInfo(SPI_SETDEFAULTINPUTLANG, 0, &amp;nLangIdent, 0);	// German - Austria
if (bResult)
{
    cout &lt;&lt; &quot;Successfully !&quot; &lt;&lt; endl;
    cout &lt;&lt; &quot;--------------&quot; &lt;&lt; endl &lt;&lt; endl;
}
else
{
    cout &lt;&lt; &quot;Error !&quot; &lt;&lt; endl;
    cout &lt;&lt; &quot;Evtl. muess das Tastaturlayout erst im Windows hinzugefuegt werden !&quot; &lt;&lt; endl;
    cout &lt;&lt; &quot;Weitere Infos in den Regions- und Sprachoptionen !&quot; &lt;&lt; endl &lt;&lt; endl;
}
</code></pre>
<p>Setzt genauso wie ich es will das Standard-Layout !</p>
<p>Vielen Dank für die Hilfe !! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705720</guid><dc:creator><![CDATA[R3dNeXX]]></dc:creator><pubDate>Tue, 05 May 2009 09:54:33 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Tue, 05 May 2009 13:17:13 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>habe doch noch ein Problem:<br />
Das Programm funktioniert, nur dauert es teilweise etwas lang, bis das von mir gewünschte Layout geändert wird.</p>
<p>Kann man das dem System noch irgendwie mitteilen, dass die Änderung sofort stattfinden soll ?</p>
<p>PS: Habe jetzt als letzten Parameter in SystemParametersInfo SPIF_SENDCHANGE stehen, bringt aber keine Änderung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705876</guid><dc:creator><![CDATA[R3dNeXX]]></dc:creator><pubDate>Tue, 05 May 2009 13:17:13 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Tue, 05 May 2009 13:47:45 GMT]]></title><description><![CDATA[<p>Hmm, hab da nur wenig experimentelle Erfahrung speziell beim Ändern des Tastaturlayouts.</p>
<p>R3dNeXX schrieb:</p>
<blockquote>
<p>Das Programm funktioniert, nur dauert es teilweise etwas lang, bis das von mir gewünschte Layout geändert wird.</p>
</blockquote>
<p>Wie lange kann denn diese Änderung dauern? Bei meinen damaligen Experimenten ging das doch recht flott über die Bühne...</p>
<p>Ich denke mal, diese sollte nur einmalig erfolgen (und nicht etwa bei jedem Programmstart), und dann wohl nie wieder. Mit dieser Betrachtung könnte man die Wartezeit einigermaßen verschmerzen, oder?<br />
Übrigens, diese Änderung sollte tunlichst nur vom Benutzer aus legitimiert werden, z.B. durch extra Menüpunkt oder Dialog-Button.<br />
D.h. ein bloßer Programmstart sollte keinesfalls die Systemeinstellungen ändern, das verärgert möglicherweise viele User, die vielleicht doch ihre eigenen Einstellungen beibehalten möchten.</p>
<p>R3dNeXX schrieb:</p>
<blockquote>
<p>Habe jetzt als letzten Parameter in SystemParametersInfo SPIF_SENDCHANGE stehen, bringt aber keine Änderung.</p>
</blockquote>
<p>Flag <em>SPIF_SENDCHANGE</em> sorgt dafür, daß nach der Änderung ein Broadcast (also Nachricht an alle laufende Prozesse) mit <em>WM_SETTINGCHANGE</em> gesendet wird.</p>
<p>Keine Änderung? Meinst Du das Tastaturlayout ist beim alten gleichgeblieben? Oder kommt kein <em>WM_SETTINGCHANGE</em> bei Dir an?</p>
<p>BTW, unabhängig davon: Ich denke mal, in Deinem Fall ist zusätzlich der Flag <em>SPIF_UPDATEINIFILE</em> notwendig.</p>
<p>Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705911</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Tue, 05 May 2009 13:47:45 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Tue, 05 May 2009 14:07:35 GMT]]></title><description><![CDATA[<p>Das ging ja schnell <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 />
Vielleicht täuscht das alles auch (wenn ich mir da jetzt hier so anschaue).</p>
<p>Der Hintergrund der ganzen Geschichte:<br />
Ich arbeite zurzeit mit Sitekiosk (damit kann man die Infoterminals super einrichten bzw. die Kiosksoftware, um es mal schnell zu erwähnen).<br />
Dort habe ich 5 eigene Keyboard-Skins (für Touchscreen), nur ist da das Problem, dass ich (wenn ich z.B. meine ital. Tastatur nutzen will) immer das Layout ändern muss.</p>
<p>Habe mir deshalb ein eigenes Programm geschrieben, dass ich beim Start dieser Kiosksoftware per Javascript starte und dann das Layout ändere. Also je nachdem, welches Skin verwendet werden soll.<br />
Habe bis jetzt auch keine andere Idee, wie bzw. wann ich mein Programm noch starten kann.</p>
<p>PS: Durch Setzen von SPIF_UPDATEINIFILE kriege ich von SystemParametersInfo immer wieder 0 zurück, ohne funktionierts ja.</p>
<p><strong>EDIT:</strong> Nein passt schon, es geht doch schnell genug. Problem ist nur, dass ich beim Start der Software mein Programm starte und eig. auch nur für diese Software das Layout ändern will (oder auch für alle, Hauptsache in der Kiosksoftware passt es). Nur müsste ich glaub ich dann das Sitekiosk nochmal neustarten und hätte dann erst mein gewünschtes Layout.<br />
Weiß nicht so recht, wie ich das für das Programm festlegen kann außer meine Anwendung vorher auszuführen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1705920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1705920</guid><dc:creator><![CDATA[R3dNeXX]]></dc:creator><pubDate>Tue, 05 May 2009 14:07:35 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Fri, 15 May 2009 11:36:20 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>also melde mich doch nochmal, wollte nicht ein extra Fred aufmachen.<br />
Konnte mich jetzt erst wieder ausgiebig damit beschäftigen und mir ist aufgefallen, dass meine Funktion grundsätzlich immer wieder fehlschlägt:</p>
<pre><code class="language-cpp">WORD eng = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
BOOL bErg = SystemParametersInfo(SPI_SETDEFAULTINPUTLANG, 0, &amp;eng, 0);
if (!bErg)
    ....
</code></pre>
<p>bErg ist andauernd 0 und GetLastError liefert aber wiederum auch 0 (also erfolgreich) ! <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=":confused:"
      alt="😕"
    /></p>
<p>Habe schon am letzten Parameter und vorletzten Parameter rumgeschraubt, hat aber nix gebracht.</p>
<p>Kann mir jemand sagen, wo hier ein Fehler sein soll oder hat ein Beispielcode ??<br />
Oder an was kann es denn sonst liegen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1710944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1710944</guid><dc:creator><![CDATA[R3dNeXX]]></dc:creator><pubDate>Fri, 15 May 2009 11:36:20 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Fri, 15 May 2009 13:26:04 GMT]]></title><description><![CDATA[<p>Hi, habs nur kurz überflogen, nichts analysiert, da bei mir die Zeit ein wenig zu knapp ist...</p>
<p>Deshalb vorab ein paar Tipps:<br />
-Häufig werden bei SystemParametersInfo() bei Parameterübergabe verwechselt ob man denn eine Variable oder einen Pointer auf die Variable übergeben muß. Bitte prüfe das genau nach. Dies kann (und ist) bei jedem Parametertyp anders! Leider.<br />
-Speziell beim Verändern von Eigenschaften: Ohne Admin-Rechte können die Änderungwünsche auch einfach so geblockt werden (dafür gibts ja die Admin-Einschränkungen für die einzelnen User).</p>
<p>Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1711027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1711027</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Fri, 15 May 2009 13:26:04 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Fri, 15 May 2009 13:47:11 GMT]]></title><description><![CDATA[<p>Hi, ich danke dir erstmal für die Antwort.</p>
<p>Werde es am Montag nochmal genau prüfen und dann nochmal Bescheid geben.<br />
Ein schönes Wochenende ! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1711043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1711043</guid><dc:creator><![CDATA[R3dNeXX]]></dc:creator><pubDate>Fri, 15 May 2009 13:47:11 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Mon, 18 May 2009 09:39:57 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>also hab nochmal etwas probiert, kriege trotzdem immer wieder 0 zurück (GetLastError liefert auch 0 zurück):</p>
<pre><code class="language-cpp">// Standard-Tastaturlayout ändern:
wcout &lt;&lt; endl &lt;&lt; L&quot;Standard-Tastaturlayout aendern&quot; &lt;&lt; endl;
wcout &lt;&lt; &quot;-------------------------------&quot; &lt;&lt; endl;

CheckKeyboardList();

WORD wLangIdent[5] = {0};
wLangIdent[0] = MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN);
wLangIdent[1] = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
wLangIdent[2] = MAKELANGID(LANG_DUTCH, SUBLANG_DUTCH);
wLangIdent[3] = MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH);
wLangIdent[4] = MAKELANGID(LANG_ITALIAN, SUBLANG_ITALIAN);
BOOL bErg = SystemParametersInfo(SPI_SETDEFAULTINPUTLANG, NULL, (PVOID)&amp;wLangIdent[nKeyboardLang], SPIF_SENDCHANGE);
if (!bErg)
    GenerateErrorMessage(L&quot;Standard-Tastaturlayout aendern&quot;);
...
</code></pre>
<p>Habe auch mal zum Testen explizit in PVOID casten lassen, was aber kein Unterschied bringt (dachte ich mir schon <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>Ich weiß nicht, wo noch ein Fehler im Aufruf der Funktion / bei der Parameterübergabe sein soll.<br />
Und Admin bin ich auch auf der Kiste.</p>
<p>Überseh ich noch was ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1712072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1712072</guid><dc:creator><![CDATA[R3dNeXX]]></dc:creator><pubDate>Mon, 18 May 2009 09:39:57 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Mon, 18 May 2009 10:27:57 GMT]]></title><description><![CDATA[<p>Wie wäre es mit einem Minimum an Lesen der MSDN?</p>
<blockquote>
<p>SPI_SETDEFAULTINPUTLANG Sets the default input language for the system shell and applications. The specified language must be displayable using the current system character set. <strong>The pvParam parameter must point to an HKL variable that contains the input locale identifier for the default language.</strong> For more information, see Languages, Locales, and Keyboard Layouts.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1712095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1712095</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 18 May 2009 10:27:57 GMT</pubDate></item><item><title><![CDATA[Reply to Standard-Tastaturlayout ändern on Mon, 18 May 2009 12:41:35 GMT]]></title><description><![CDATA[<p>Ach verdammt !<br />
Man, hab die ganze Zeit diese Angabe von dir in der MSDN nicht gesehen.</p>
<p>Funktioniert, ein Beispiel:</p>
<pre><code class="language-cpp">// lädt French (France):
HKL hkLoadKeyb = LoadKeyboardLayout(L&quot;0000040c&quot;, KLF_ACTIVATE);
BOOL bErg = SystemParametersInfo(SPI_SETDEFAULTINPUTLANG, 0, &amp;hkLoadKeyb, SPIF_SENDCHANGE);
if (!bErg)
    ....
</code></pre>
<p>Ich danke dir !<br />
Sollte mal sehen, dass ich die MSDN mal aufmerksamer lese. <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/1712218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1712218</guid><dc:creator><![CDATA[R3dNeXX]]></dc:creator><pubDate>Mon, 18 May 2009 12:41:35 GMT</pubDate></item></channel></rss>