Set System local information

Visual Basic Topics
Post Reply
Cyclops
Lieutenant
Lieutenant
Posts: 71
Joined: Wed Jul 15, 2009 1:48 pm
Location: London

Set System local information

Post by Cyclops » Tue Sep 22, 2009 12:22 pm

Code: Select all

Const LOCALE_SDECIMAL = &HE
Const LOCALE_SLONGDATE = &H20
Const LOCALE_SSHORTDATE = &H1F
Const LOCALE_SCURRENCY = &H14
Const LOCALE_STHOUSAND = &HF
Const LOCALE_SINTLSYMBOL = &H15
Const LOCALE_STIMEFORMAT = &H1003
Private Const WM_SETTINGCHANGE = &H1A
Private Const HWND_BROADCAST = &HFFFF&

 
'Kernel Decleration
Public Declare Function GetLocaleInfo Lib "kernel32" _
    Alias "GetLocaleInfoA" (ByVal lLocale As Long, _
        ByVal lLocaleType As Long, ByVal sLCData As String, _
        ByVal lBufferLength As Long) As Long

        

Private Declare Function SetLocaleInfo Lib "kernel32" Alias _
    "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, _
    ByVal lpLCData As String) As Boolean

    

Private Declare Function PostMessage Lib "user32" _
    Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long

'Convert system date format in system
Public Sub ConvertSysDate()

    Dim dwLCID As Long

    dwLCID = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, sBuffer, lBuffLen)

    If SetLocaleInfo(dwLCID, LOCALE_SSHORTDATE, "dd/MM/yyyy") = False Then Exit Sub

    PostMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0

End Sub

'Convert system Time format in system
Public Sub ConvertSysTime()

    Dim dwLCID As Long

    dwLCID = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, sBuffer, lBuffLen)

    If SetLocaleInfo(dwLCID, LOCALE_STIMEFORMAT, "h:mm:ss tt") = False Then Exit Sub

    PostMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0

End Sub

'Convert system CURRENCY Symbol in system
Public Sub ConvertSysCurrency()

    Dim dwLCID As Long

    dwLCID = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SCURRENCY, sBuffer, lBuffLen)

    If SetLocaleInfo(dwLCID, LOCALE_SCURRENCY, "$") = False Then Exit Sub

    PostMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0

End Sub

' Convert system Decimal Symbol in system
Public Sub ConvertSysDecimal()

    Dim dwLCID As Long

    dwLCID = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, sBuffer, lBuffLen)

    If SetLocaleInfo(dwLCID, LOCALE_SDECIMAL, ".") = False Then Exit Sub

    PostMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0

End Sub
Post Reply

Return to “Visual Basic Programming”