你不如全部转换成"yyyy-mm-dd"格式。
解决方案 »
- 求助:VB程序总在开机启动,怎么删除该功能
- 请问如何在excel中运用vb编写宏删除为空字段!
- 怎么样才VB中显示。曲线图
- 求救VB中能实现这个算法么?
- DateTimePicker和statusBar
- word中鼠标不能用的怪问题
- 我做了个dll,可工程文件没保存,就剩下了dll、exp、lib三个文件,有没有什么办法能看到dll的源代码?
- ActiveReprot 2.0到哪里能download,注册码是多少,希望这里能给朋友们一个满意的答复,省得再去东找西找了
- 请求菜单帮助(只限VB)
- 如何获得局域网中的机器名?
- 急急急急急急急急急急急急急急急急!!!!!!!!
- 紧急求助!!关于日期的问题!!比如!今天是2001.5.4 那么55天后是几月几号??谢谢!!!
这样多不方便,我是在程序完成后,客户才提出来的。我不总不能重新改一遍程序吧。
我用getformat()函数得到当前日期的格式,可是系统不认getformat函数。请问有没有得到日期格式的函数呢?谢谢。
开始---控制制面板--区域设置--日期--日期样式
日期样式有多种,你可以自行选择。
如果系统日期没有指定的格式,那么。我们用format()函数来做什么呢?
你见过用友软件吗?我想实现的跟用友差不多,也是在程序一启动时就检测当前date的格式。如果不是"yyyy-mm-dd"就自动设为“yyyy-mm-dd”格式,
HKEY_CURRENT_USER/Control Panel/International/sShortDate
看来你只要读写这个键就可以实现了
'=========================================================='
' API Declarations '
'=========================================================='
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long'=========================================================='
' Private Structs '
'=========================================================='
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128 ' Maintenance string for PSS usage
End Type'=========================================================='
' Private Enumerations '
'=========================================================='
Private Enum OSVersions
VER_PLATFORM_WIN32_NT = 2
VER_PLATFORM_WIN32_WINDOWS = 1
VER_PLATFORM_WIN32s = 0
End Enum
'=========================================================='
' Public Enumerations '
'=========================================================='
Public Enum hKey
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
HKEY_CURRENT_CONFIG = &H80000005
HKEY_DYN_DATA = &H80000006
End EnumPublic Enum DataType
KEY_NOTIFY = &H10
READ_CONTROL = &H20000
STANDARD_RIGHTS_READ = (READ_CONTROL)
STANDARD_RIGHTS_WRITE = (READ_CONTROL)
KEY_QUERY_VALUE = &H1
KEY_SET_VALUE = &H2
KEY_ENUMERATE_SUB_KEYS = &H8
KEY_CREATE_SUB_KEY = &H4
Synchronize = &H100000
REG_SZ = 1 ' Unicode nul terminated string
KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not Synchronize))
KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not Synchronize))
End Enum'=========================================================='
' Public Methods '
'=========================================================='' Procedure Creates a key in the reg
Public Sub CreateKey(ByVal hKey As hKey, ByVal sLocation As String)
Dim regHwnd&
RegCreateKey hKey, sLocation, regHwnd
RegCloseKey regHwnd
End Sub' Procedure writes a value to a key
Public Sub SetKeyValue(ByVal hKey As hKey, ByVal sLocation$, ByVal sKeyName$, ByVal sValue$)
Dim hwndKey&
If (RegOpenKeyEx(hKey, sLocation, 0, DataType.KEY_WRITE, hwndKey) = ERROR_SUCCESS) Then
RegSetValueEx hwndKey, sKeyName, 0, DataType.REG_SZ, ByVal sValue, Len(sValue)
RegCloseKey hwndKey
End If
End Sub' Procedure retrieves a value from a key
Public Function GetKeyStringValue(ByVal hKey As hKey, ByVal sLocation$, ByVal sKeyName$) As String
Dim hwndKey&, sRecieved As String
sRecieved = Space(255)
If (RegOpenKeyEx(hKey, sLocation, 0, DataType.KEY_READ, hwndKey) = ERROR_SUCCESS) Then
If (RegQueryValueEx(hwndKey, sKeyName, 0, DataType.REG_SZ, ByVal sRecieved, Len(sRecieved)) = ERROR_SUCCESS) Then
GetKeyStringValue = TrimNull(sRecieved)
Else
GetKeyStringValue = ""
End If RegCloseKey hwndKey
End If
End Function' Procedure removes a Key
Public Sub RemoveKey(ByVal hKey As hKey, ByVal sLocation$)
RegDeleteKey hKey, sLocation
End Sub'=========================================================='
' Private Functions '
'=========================================================='' Function removes the extra space from the string starting from the nullchar
Private Function TrimNull(ByVal szNull As String) As String
Dim m%
m = InStr(szNull, Chr$(0))
If (m) Then ' Win95 puts adds a null value
TrimNull = Mid$(szNull, 1, m - 1)
Else
TrimNull = "" ' WinNT does not add a nullchar
End If
End Function然后在你要设置的地方写上以下代码 Dim SysFormat As String
SysFormat = LCase(GetKeyStringValue(hKey.HKEY_CURRENT_USER, "Control Panel\International", "sShortDate"))
If SysFormat <> "yyyy-mm-dd" Then
SysFormat = "yyyy-MM-dd"
SetKeyValue hKey.HKEY_CURRENT_USER, "Control Panel\International", "sShortDate", SysFormat
End If
就中止程序。要求设为此格式。这种方法很笨。可是省事。
:)