Définit la langue de l'interface utilisateur pour le thread courant
#include <WinAPILocale.au3>
_WinAPI_SetThreadUILanguage ( $iLanguage )
$iLanguage | L'identifiant de la langue pour la langue de l'interface utilisateur. |
Succès: | Retourne True |
Échec: | Retourne False |
Cette fonction nécessite Windows Vista ou une version ultérieure.
Consultez SetThreadUILanguage dans la librairie MSDN.
#include <APILocaleConstants.au3> #include <APIResConstants.au3> #include <MsgBoxConstants.au3> #include <WinAPILocale.au3> #include <WinAPIRes.au3> #include <WinAPISys.au3> Local $hInstance = _WinAPI_LoadLibraryEx(@ScriptDir & '\Extras\Resources.dll', $LOAD_LIBRARY_AS_DATAFILE) If Not $hInstance Then MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Erreur', @ScriptDir & '\Extras\Resources.dll non trouvé.') Exit EndIf ; Obtient l'identifiant de langue (locale) pour le processus actuel Local $iPrev If Number(_WinAPI_GetVersion()) >= 6.0 Then $iPrev = _WinAPI_GetThreadUILanguage() Else $iPrev = _WinAPI_GetThreadLocale() EndIf ; Pourquoi le nom de la ressource pour la chaîne avec ID = 6000 est 376 ? 6000/16 + 1 = 376 Local $aData = _WinAPI_EnumResourceLanguages($hInstance, $RT_STRING, 376) If Not @error Then For $i = 1 To $aData[0] If Number(_WinAPI_GetVersion()) >= 6.0 Then _WinAPI_SetThreadUILanguage($aData[$i]) Else _WinAPI_SetThreadLocale($aData[$i]) EndIf ConsoleWrite(StringFormat('%-10s - %s', _WinAPI_GetLocaleInfo($aData[$i], $LOCALE_SENGLANGUAGE), _WinAPI_LoadString($hInstance, 6000)) & @CRLF) Next EndIf ; Restaure la langue précédente pour le processus actuel If Number(_WinAPI_GetVersion()) >= 6.0 Then _WinAPI_SetThreadUILanguage($iPrev) Else _WinAPI_SetThreadLocale($iPrev) EndIf