Option Explicit ---这句删掉
'如何在VB中改变设置系统日期时间格式
Private Const LOCALE_STIMEFORMAT = &H1003
Private Const LOCALE_SSHORTDATE = &H1F
Private Const WM_SETTINGCHANGE = &H1A
Private Const HWND_BROADCAST = &HFFFF&
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
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
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
Public Sub setdateformat()
Dim dwLCID As Long, i As Long
Dim lpLCData As String * 255, cchData ---这句改成: Dim lpLCData,cchData AS string
cchData = Len(lpLCData)
dwLCID = GetSystemDefaultLCID()
i = SetLocaleInfo(dwLCID, LOCALE_SSHORTDATE, "yyyy/M/d") '设置短日期格式
PostMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0 ) ---参数加上括号
i = SetLocaleInfo(dwLCID, 32, "yyyy'年'M'月'd'日'") '设置长日期格式
PostMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0) ---参数加上括号
i = SetLocaleInfo(dwLCID, LOCALE_STIMEFORMAT, "HH:mm:ss") '设置时间格式
PostMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0 ) ---参数加上括号
End Sub
以上是vb的代码,红色是我搬到fox中自己修改的地方. 不知道对不对。
现在一引用setdateformat() 就报错:
“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”