Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Umschaltung nach Arabisch (https://www.delphipraxis.net/165232-umschaltung-nach-arabisch.html)

Billa 19. Dez 2011 17:39

Umschaltung nach Arabisch
 
Hallo,

ich möchte in einem kleinen Programm automatisch beim Aktivieren eines Eingabefeldes auf eine arabische Sprache umstellen. Das Eingabeschema ist installiert und von Hand klappt die Umschaltung. Lt. MSDN ist der Code für Arabisch (Libyen) 0x1001.

Delphi-Quellcode:
  LangIdentifier := '00001001';
  LoadKeyboardLayout(PChar(LangIdentifier), KLF_ACTIVATE);
klappt aber nicht. Statt dessen stellt das Programm auf "EN" um. Das Zurücksetzen auf "DE" dagegen klappt mit

Delphi-Quellcode:
  LangIdentifier := '00000407';
  LoadKeyboardLayout(PChar(LangIdentifier), KLF_ACTIVATE);
Was mache ich falsch?

Der Jan 19. Dez 2011 19:17

AW: Umschaltung nach Arabisch
 
Theorie 1: Nur so ohne Nachzuschauen: War Arabisch nicht 01? Vlt. probierst du mal 0110 statt 1001?


Theorie 2: Gib als LangIdentifier "ar-ly" an.

Der Jan 19. Dez 2011 19:23

AW: Umschaltung nach Arabisch
 
Ok, ich sehe gerade, es waren beide Theorien Unfug :)

Aber vlt schaust du mal hier: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Mir scheint dein LanguageID falsch

himitsu 19. Dez 2011 19:25

AW: Umschaltung nach Arabisch
 
Damit man sich nicht verschreibt:
Delphi-Quellcode:
var LangIdentifier: LANGID;

LangIdentifier := MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN);
LoadKeyboardLayout(PChar(IntToHex(LangIdentifier, 8)), KLF_ACTIVATE or KLF_SETFORPROCESS);


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz