Языковый стандарт. Региональные параметры - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы