UDF > WinAPIEx > Internationalization >


_WinAPI_GetThreadUILanguage

Obtient l'identifiant de la première langue de l'interface utilisateur pour le thread courant

#include <WinAPILocale.au3>
_WinAPI_GetThreadUILanguage ( )

Valeur de retour

Retourne l'identifiant de la langue associé au thread courant.

Remarque

Cette fonction nécessite Windows Vista ou une version ultérieure.

Voir aussi

Consultez GetThreadUILanguage dans la librairie MSDN.

Exemple

#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