VBA changes system date

fatalshears

New member
Local time
Today, 10:04
Joined
May 21, 2014
Messages
4
Hi guys,
I've just found on the net this piece of code:
Code:
Option Compare Database
Option Explicit

Public Const LOCALE_SSHORTDATE = &H1F
Public Const WM_SETTINGCHANGE = &H1A
'same as the old WM_WININICHANGE
Public Const HWND_BROADCAST = &HFFFF&
Public Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As _
Long, ByVal lpLCData As String) As Boolean
Public 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
Public Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Public 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

Public Sub datngay()
Dim lLocal As Long
Dim Length As Long
Dim dwLCID As Long
Dim Buf As String * 1024
On Error GoTo SetSysDate_Error
lLocal = GetSystemDefaultLCID()
Length = GetLocaleInfo(lLocal, LOCALE_SSHORTDATE, Buf, Len(Buf))
If Not Left$(Buf, Length - 1) = "dd/MM/yyyy" Then
dwLCID = GetSystemDefaultLCID()
If SetLocaleInfo(dwLCID, LOCALE_SSHORTDATE, "dd/MM/yyyy") = False Then
MsgBox "Khong doi duoc dinh dang ngay he thong.", 64, "Thong bao"
Exit Sub
End If
PostMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0
End If
Exit Sub
SetSysDate_Error:
MsgBox "Unexpected Error No. " & Err.Number & _
" in procedure SetSysDate of Form Main. " _
& vbCrLf & vbCrLf & Err.Description, 64, "Dish Care Centre"
End Sub
I have tried and seen that this code can change the system date format even on the computer which required admin right. Anyone who have idea about the safety of this code?
 
Last edited:

Users who are viewing this thread

Back
Top Bottom