للتغيير إلى لوحة مفاتيح معينة وغير ذلك إليك هذا:
معذرة على الفرنسية لمن لا يفهمها.
كود :
Changer la langue du clavier
//Pour changer le langue
var
Lang: HKL;
begin
Lang := LoadKeyboardLayout(pcKeyboard, 0);
ActivateKeyboardLayout(Lang, KLF_ACTIVATE);
if SystemParametersInfo(SPI_SETDEFAULTINPUTLANG,0,@Lang,SPIF_SENDCHANGE)
then showmessage('OK ça marche') else showmessage('Non raté !');
//*************************************************************************
//Ou directement:
LoadKeyboardLayout(pcKeyboard, KLF_ACTIVATE);
//Où pcKeyboard est l'une des valeurs suivantes:
'00000401' - Arabe
'0000040C' - Français
'00000409' - Anglais
'00000407' - Allemagne
//Par exemple:
LoadKeyboardLayout('00000401',KLF_ACTIVATE); //pour arabe
LoadKeyboardLayout('00000409',KLF_ACTIVATE); //pour anglais
LoadKeyboardLayout('0000040C',KLF_ACTIVATE); //pour français
{Pour d'autres langues visiter:
http://msdn.microsoft.com/en-us/goglobal/bb964664.aspx
ou dans le registre:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
}
//*************************************************************************
//Fonction pour détecter le code de la langue actuelle
function GetLayout: string;
begin
SetLength(Result, KL_NAMELENGTH+1);
if not GetKeyBoardLayoutName(PChar(Result)) then
Result := 'Error: No layout name read';
end;
{*************************************************************************
Pour spécifier une langue précise (par exemple: Français Canadienne)
Pas de code inconnue comme 409 ou 419.}
var
kbCOde : LongWord;
kbString : Array[0..9] of char;
begin
//Français Canadienne:
kbCode := (SUBLANG_FRENCH_CANADIAN shl 10) or LANG_FRENCH;
//Pour Français Standard:
//kbCode := (SUBLANG_DEFAULT shl 10) or LANG_FRENCH;
//Convertir le code binaire en chaîne String:
StrPCopy(kbString, IntToHex(kbCode, 8));
//Pour voir le code:
ShowMessage(kbString);
//Basculer ver la langue
LoadKeyboardLayout(@kbString, KLF_ACTIVATE);
end;
//Pour les autres langues voir l'unité: windows.pas
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...

