Языковый стандарт. Региональные параметры - VB
Формулировка задачи:
Как известно при выборе "Русский" - в числовых значениях используется десятичная запятая, "Английский США" - десятичная точка.
Как определить текущую раскладку - спасибо форуму - использую, но получилось кривовато.
Как определить программно языковый стандарт (Панель управления\Язык и региональные стандарты\)?
Решение задачи: «Языковый стандарт. Региональные параметры»
textual
Листинг программы
Option Explicit Const LOCALE_SDATE = &H1D Const LOCALE_SDECIMAL = &HE Const LOCALE_USER_DEFAULT = &H400 Const LOCALE_SENGCOUNTRY = &H1002 Const LOCALE_SENGLANGUAGE = &H1001 Const LOCALE_SNATIVELANGNAME = &H4 Const LOCALE_SNATIVECTRYNAME = &H8 Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long Private Sub Form_Load() MsgBox "Страна = " & GetInfo(LOCALE_SENGCOUNTRY) & " (" & GetInfo(LOCALE_SNATIVECTRYNAME) & ")," & vbCrLf & "язык = " & GetInfo(LOCALE_SENGLANGUAGE) & " (" & GetInfo(LOCALE_SNATIVELANGNAME) & ").", vbInformation MsgBox "Десятичный разделитель= " & GetInfo(LOCALE_SENGCOUNTRY) & " (" & GetInfo(LOCALE_SDECIMAL) & ")," & vbCrLf & "Даты разделитель = " & GetInfo(LOCALE_SENGLANGUAGE) & " (" & GetInfo(LOCALE_SDATE) & ").", vbInformation End Sub Public Function GetInfo(ByVal lInfo As Long) As String Dim Buffer As String, Ret As String Buffer = String$(256, 0) Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, lInfo, Buffer, Len(Buffer)) If Ret > 0 Then GetInfo = Left$(Buffer, Ret - 1) Else GetInfo = "" End If End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д