Vậy có cách nào để khi mình mở phần mềm lên nó sẽ tự kiểm tra ngày hệ thống để trả về định dạng dd/mm/yyyy không ?
Đừng bảo mình chuyển trong Control Panel nhé ,vì như thế cứ mang pm đi máy nào cũng phải chỉnh lại mất công lắm,mà không pro
Đáp: ( dongnamnb- Danketoan)
Bạn có thể giải quyết bằng hàm API. Cách làm như sau:
1. Copy đoạn code sau vào 1 module
Option Compare DatabaseỞ sự kiện Form_Load của form startup của bạn, bạn gọi thủ tục SetSysDate như sau:
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
Private Sub SetSysDate()
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
Private Sub Form_Load()Như vậy mỗi lần chạy chương trình của bạn thì định dạng ngày hệ thống sẽ tự động chuyển thành dạng dd/mm/yyyy
SetSysDate
End Sub
Không có nhận xét nào:
Đăng nhận xét