VERIFICAR A DATA DO SISTEMA

ANDRERP 04/01/2005 14:58:29
#58528
E ai pessoal!

Gostaria de saber como faço para saber se a data do sistema está configurada como dd/mm/aaaa. Pois se não tiver quero passar uma mensagem se a pessoa quer mudar a máscara ou não. Alguém sabe me dizer ?
LCSD 04/01/2005 15:02:13
#58529
Acesse este LINK e veja se lhé útil.


http://www.vbmania.com.br/vbmdetail.php?varID=1932
ANDRERP 04/01/2005 16:55:34
#58586
acho q não fui muito explicativo. Gostaria de fazer o seguinte:

o Windows vem configurado por default como d/m/aaaa, mas meu sistema irá trabalhar melhor com dd/mm/aaaa. Portanto se a pessoa instalar o sistema e o formato do windows tiver como d/m/aaaa, quero mudar no sistema o formato para dd/mm/aaaa. é possível ?
FELIPEA 04/01/2005 17:02:32
#58593
Use o Format para indicar a data no tipo "dd/mm/aaaa". Por exemplo:

Private Sub Form_Load()
lblDate.Caption = Format(Now, "dd/mm/yyyy") ' Retorna na label a data do systema
End Sub
USUARIO.EXCLUIDOS 04/01/2005 17:09:12
#58598
Global Const HKEY_CLASSES_ROOT = &H80000000
Global Const HKEY_CURRENT_USER = &H80000001
Global Const HKEY_LOCAL_MACHINE = &H80000002
Global Const HKEY_USERS = &H80000003
Global Const HKEY_PERFORMANCE_DATA = &H80000004
Global Const HKEY_CURRENT_CONFIG = &H80000005
Global Const HKEY_DYN_DATA = &H80000006

Global Const KEY_ALL_ACCESS = &H3F
Global Const ERROR_NO_MORE_ITEMS = 259
Global Const REG_SZ = 1

Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long

Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long

Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long
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
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.
Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long
Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long


Sub Main()
r = Arrumar_Registros_Windows(".Default\Control Panel\International", "sShortDate", "dd/MM/yyyy", True)
r = Arrumar_Registros_Windows(".Default\Control Panel\International", "iNegCurr", "2", Not r)
end sub

Function Arrumar_Registros_Windows(Chave As String, Campo As String, Valor As String, ComMensagem As Boolean) As Boolean

Dim lRet As Long, hKey As Long
Dim lIndex As Long, aVName$, lVName As Long, lType As Long, aData$, lData As Long
Dim Achei As Boolean

Arrumar_Registros_Windows = False

lRet = RegOpenKeyEx(HKEY_USERS, Chave, 0, KEY_ALL_ACCESS, hKey)
If lRet Then Exit Function

Achei = False
lVName = 100 ' Name buffer length
aVName$ = Space$(lVName) ' Name buffer
lData = 100 ' Data buffer length
aData$ = Space$(lData) ' Data buffer
lRet = RegEnumValue(hKey, lIndex, aVName$, lVName, 0, lType, aData$, lData)

Do Until lRet = ERROR_NO_MORE_ITEMS
If InStr(aVName$, Campo) > 0 Then
If UCase(Left(aData$, InStr(aData$, Chr(0)) - 1)) = UCase(Valor) Then
Achei = True
Exit Do
Else
'como achei mas com formato errado, cai fora e arruma
Exit Do
End If
End If
lVName = 100 ' You MUST reset these buffer lengths, because the RegEnumValue call
lData = 100 ' changed them to = # of bytes copied
lIndex = lIndex + 1
lRet = RegEnumValue(hKey, lIndex, aVName$, lVName, 0, lType, aData$, lData)
Loop

If Not Achei Then
lRet = RegSetValueEx(hKey, Campo, 0&, REG_SZ, ByVal Valor, LenB(StrConv(Valor, vbFromUnicode)) + 1)
If ComMensagem Then MsgBox msgRegWinData & Chr(10) & msgRegWinCorrigeData, vbInformation
Arrumar_Registros_Windows = True
End If
lRet = RegCloseKey(hKey)

End Function
FNBRAULINO 04/01/2005 18:01:50
#58625
sempre da pra fazer diferente, eu pelo menos faço assim
coloca isso num modulo
Public Function verifica_data(texto As String)
'esta funcao verifica se a data esta no formato dd/mm/aaaa
Dim D As String
D = 1
While D <= Len(texto)
X = Mid(texto, D, 1)
If X = "-" Or X = "." Or X = "/" Then
X = "/"
Y = ""
End If
Resultado = Resultado + X
D = D + 1
X = ""
Wend
soma = Mid(Right(Resultado, 4), 1, 3)
If Not IsNumeric(soma) Then
soma = 0
End If
End Function

e no load do 1º form a ser carregado vc coloca assim:

data = Date
verifica_data (data)
If data <> Resultado Or Len(data) < 10 Or soma = 0 Then
MsgBox "O formato da data do seu computador, está diferente do padrão usado pelo seu sistema, por favor altere o formato da data para dd/mm/aaaa, antes de iniciar o uso do seu sistema", vbExclamation, "seu sistema"
End
End If
so à± da pra mudar a data, isso tem que ser manual
espero ter ajudado
ANDRERP 05/01/2005 09:04:58
#58693
Executei as mudanças que passaram, mas não funcionou. O código do FLAVIO PAGANINI roda sem erros mas não altera o sistema. não sei por que!

FNBRAULINO, gostei tb da sua idéia, mas realmente gostaria de algo automático, que não houvesse interferencia do usuário.
ANDRERP 05/01/2005 10:50:49
#58718
Alguém tem mais alguma idéia do que posso fazer aqui ?
USUARIO.EXCLUIDOS 05/01/2005 11:52:24
#58737
Nós usamos o código acima para manter sempre o computador configurado para o padrão brasileiro, não funcionou contigo?
ANDRERP 05/01/2005 14:32:45
#58790
não ! continuou sendo d/m/aaaa, e não dd/mm/aaaa
ANDRERP 07/01/2005 08:20:59
#59132
Me ajudem pessoal, por favor !
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas