DATA DO WINDOWS: PT-BR OU USA?

HUGOSSOUZA 18/11/2009 12:21:52
#328053
Caros,
alguem sabe alguma forma de verificar o formado das [Ô]opções regionais e de idiomas[Ô] do windows?
Eu preciso verificar se a data está no formato americano ou brasileiro.
EDERMIR 18/11/2009 15:04:32
#328080
Qual o problema com o formato da data?

Se você montar seu sistema com format(DATE,[Ô]dd/mm/yyyy[Ô]) fica no formato BRASILEIRO
HUGOSSOUZA 18/11/2009 15:16:21
#328085
Eu quero apenas informar para o usuário qual o formato da maquina.

O que acontece é que um dos sistema usa uma rotina para importar uma planilha do excel.
O usuário dessa maquina precisa alterar o formato para americano para trabalhar com algumas outras informações.

E se ele esquece de voltar a data para Pt-br, no momente que importa o arquivo a data vem invertida.

Eu não tenho acesso a rotina, então a unica coisa que eu preciso é verificar em qual formato que está a data.
MARCELO.TREZE 18/11/2009 16:27:19
#328092
Resposta escolhida
colega testa este código

[ô]Em General
Option Explicit

[ô]Pega as configurações
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

[ô]Altera as configurações
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 GetUserDefaultLCID% Lib [Ô]kernel32[Ô] ()

[ô]Constantes das Configurações Regionais
Const LOCALE_ICENTURY = &H24
Const LOCALE_ICOUNTRY = &H5
Const LOCALE_ICURRDIGITS = &H19
Const LOCALE_ICURRENCY = &H1B
Const LOCALE_IDATE = &H21
Const LOCALE_IDAYLZERO = &H26
Const LOCALE_IDEFAULTCODEPAGE = &HB
Const LOCALE_IDEFAULTCOUNTRY = &HA
Const LOCALE_IDEFAULTLANGUAGE = &H9
Const LOCALE_IDIGITS = &H11
Const LOCALE_IINTLCURRDIGITS = &H1A
Const LOCALE_ILANGUAGE = &H1
Const LOCALE_ILDATE = &H22
Const LOCALE_ILZERO = &H12
Const LOCALE_IMEASURE = &HD
Const LOCALE_IMONLZERO = &H27
Const LOCALE_INEGCURR = &H1C
Const LOCALE_INEGSEPBYSPACE = &H57
Const LOCALE_INEGSIGNPOSN = &H53
Const LOCALE_INEGSYMPRECEDES = &H56
Const LOCALE_IPOSSEPBYSPACE = &H55
Const LOCALE_IPOSSIGNPOSN = &H52
Const LOCALE_IPOSSYMPRECEDES = &H54
Const LOCALE_ITIME = &H23
Const LOCALE_ITLZERO = &H25
Const LOCALE_NOUSEROVERRIDE = &H80000000
Const LOCALE_S1159 = &H28
Const LOCALE_S2359 = &H29
Const LOCALE_SABBREVCTRYNAME = &H7
Const LOCALE_SABBREVDAYNAME1 = &H31
Const LOCALE_SABBREVDAYNAME2 = &H32
Const LOCALE_SABBREVDAYNAME3 = &H33
Const LOCALE_SABBREVDAYNAME4 = &H34
Const LOCALE_SABBREVDAYNAME5 = &H35
Const LOCALE_SABBREVDAYNAME6 = &H36
Const LOCALE_SABBREVDAYNAME7 = &H37
Const LOCALE_SABBREVLANGNAME = &H3
Const LOCALE_SABBREVMONTHNAME1 = &H44
Const LOCALE_SCOUNTRY = &H6
Const LOCALE_SCURRENCY = &H14
Const LOCALE_SDATE = &H1D
Const LOCALE_SDAYNAME1 = &H2A
Const LOCALE_SDAYNAME2 = &H2B
Const LOCALE_SDAYNAME3 = &H2C
Const LOCALE_SDAYNAME4 = &H2D
Const LOCALE_SDAYNAME5 = &H2E
Const LOCALE_SDAYNAME6 = &H2F
Const LOCALE_SDAYNAME7 = &H30
Const LOCALE_SDECIMAL = &HE
Const LOCALE_SENGCOUNTRY = &H1002
Const LOCALE_SENGLANGUAGE = &H1001
Const LOCALE_SGROUPING = &H10
Const LOCALE_SINTLSYMBOL = &H15
Const LOCALE_SLANGUAGE = &H2
Const LOCALE_SLIST = &HC
Const LOCALE_SLONGDATE = &H20
Const LOCALE_SMONDECIMALSEP = &H16
Const LOCALE_SMONGROUPING = &H18
Const LOCALE_SMONTHNAME1 = &H38
Const LOCALE_SMONTHNAME10 = &H41
Const LOCALE_SMONTHNAME11 = &H42
Const LOCALE_SMONTHNAME12 = &H43
Const LOCALE_SMONTHNAME2 = &H39
Const LOCALE_SMONTHNAME3 = &H3A
Const LOCALE_SMONTHNAME4 = &H3B
Const LOCALE_SMONTHNAME5 = &H3C
Const LOCALE_SMONTHNAME6 = &H3D
Const LOCALE_SMONTHNAME7 = &H3E
Const LOCALE_SMONTHNAME8 = &H3F
Const LOCALE_SMONTHNAME9 = &H40
Const LOCALE_SMONTHOUSANDSEP = &H17
Const LOCALE_SNATIVECTRYNAME = &H8
Const LOCALE_SNATIVEDIGITS = &H13
Const LOCALE_SNATIVELANGNAME = &H4
Const LOCALE_SNEGATIVESIGN = &H51
Const LOCALE_SPOSITIVESIGN = &H50
Const LOCALE_SSHORTDATE = &H1F
Const LOCALE_STHOUSAND = &HF
Const LOCALE_STIME = &H1E
Const LOCALE_STIMEFORMAT = &H1003


[ô]CÒDIGO PARA O FORMULÁRIO:
Private Sub Command1_Click() [ô] PEGA A configuração ATUAL

Dim Symbol As String
Dim iRet1 As Long
Dim iRet2 As Long
Dim lpLCDataVar As String
Dim Pos As Integer
Dim Locale As Long

Locale = GetUserDefaultLCID()
[ô]basta vc alterar LOCALE_... conforme tabela acima e te retornará as informações
iRet1 = GetLocaleInfo(Locale, LOCALE_SNATIVELANGNAME, lpLCDataVar, 0)
Symbol = String$(iRet1, 0)

iRet2 = GetLocaleInfo(Locale, LOCALE_SNATIVELANGNAME, Symbol, iRet1)
Pos = InStr(Symbol, Chr$(0))

If Pos > 0 Then
Symbol = Left$(Symbol, Pos - 1)
MsgBox [Ô]Configuração atual = [Ô] + Symbol
End If

End Sub




Private Sub Command2_Click() [ô] Altera a configuração atual

Dim Symbol As String
Dim iRet As Long
Dim Locale As Long

On Error GoTo ErroTexto

If Trim(Text1) = [Ô][Ô] Then GoTo ErroTexto

Locale = GetUserDefaultLCID() [ô]Get user Locale ID
Symbol = Text1 [ô]Novo caracter para a configuração Regional
[ô]digite um novo simbolo na caixa-texto
iRet = SetLocaleInfo(Locale, LOCALE_SNATIVELANGNAME, Symbol)

Exit Sub

ErroTexto:
MsgBox [Ô]Digite uma configuração válida[Ô]

End Sub


veja se te ajuda
HUGOSSOUZA 18/11/2009 18:12:31
#328103
MARCELO-TREZE,
Esse código resolveu meu problema.

Muito obrigado.
Tópico encerrado , respostas não são mais permitidas