ALTERAR FORMATO DA DATA DO WINDOWS

 Tópico anterior Próximo tópico Novo tópico

ALTERAR FORMATO DA DATA DO WINDOWS

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#305345 - 25/03/2009 00:00:08

USUARIO.EXCLUIDOS

Cadast. em:


ola pessoal,

minha aplicaçào foi inteira projetada para o formato dd/MM/yyyy, mais o padrão do windows XP é d/M/yyyy.

alguem sabe como alterar via codigo isso ... para que eu possa colocar na inicializacao do programa..

aguardo






#305348 - 25/03/2009 00:15:47

USUARIO.EXCLUIDOS

Cadast. em:


Cara, eu acho alterar qualquer configuração do PC do cara um erro tremendo...Mas, procure no site por regionais que verá exemplos...



Resposta escolhida #305405 - 25/03/2009 11:30:07

LCSD
SAO PAULO
Cadast. em:Janeiro/2001


eu acho mais prático usar o format no programa assim não terá de alterar o formato da data do PC.

Mas... uma api simples pra isto
  
Option Explicit

Private Const LOCALE_SSHORTDATE = &H1F
Private Declare Function GetSystemDefaultLCID Lib  kernel32  () As Long
Private Declare Function SetLocaleInfo Lib  kernel32  Alias  SetLocaleInfoA  (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean


Private Sub Form_Load()
  Dim fData As String
  Dim lngLocale As Long
  fData =  dd/MM/yyyy
  lngLocale = GetSystemDefaultLCID()
  If SetLocaleInfo(lngLocale, LOCALE_SSHORTDATE, fData) = False Then
    MsgBox  Houve um erro ao definir o formato de data !
  End If
End Sub


veja se ajuda

  
Quando precisar, pode contar comigo....
E quando precisar, não esqueça de agradecer, pois a educação é a ALMA DO NEGÓCIO...


Obrigado.

Luiz Cesar

#305444 - 25/03/2009 14:56:13

USUARIO.EXCLUIDOS

Cadast. em:


está dando um erro nesta linha:
SetLocaleInfo(lngLocale, LOCALE_SSHORTDATE, fData)

erro:
Run-time error [ô]49[ô]
Bad DLL calling convertion

pode me ajudar?




#305452 - 25/03/2009 15:11:20

USUARIO.EXCLUIDOS

Cadast. em:


Lmestrinare, o meu deu certo, fiz um teste aqui, qual versao do seu windows? o meu é xp




#305457 - 25/03/2009 15:23:57

USUARIO.EXCLUIDOS

Cadast. em:


o meu tb é xp sp2

nao entendo....




#305458 - 25/03/2009 15:28:13

USUARIO.EXCLUIDOS

Cadast. em:


Vc colocou isso bem no começo do seu form?:

Option Explicit

Private Const LOCALE_SSHORTDATE = &H1F
Private Declare Function GetSystemDefaultLCID Lib  kernel32  () As Long
Private Declare Function SetLocaleInfo Lib  kernel32  Alias  SetLocaleInfoA  (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean






#305459 - 25/03/2009 15:33:06

LCSD
SAO PAULO
Cadast. em:Janeiro/2001


o problema possivelmente está na KERNEL32.DLL, o motivo não sei dizer.

em ultimo caso subistitua esta dll da pasta system32

outra coisa qual o service pack do vb está usando?










  
Quando precisar, pode contar comigo....
E quando precisar, não esqueça de agradecer, pois a educação é a ALMA DO NEGÓCIO...


Obrigado.

Luiz Cesar

#305641 - 26/03/2009 17:23:40

USUARIO.EXCLUIDOS

Cadast. em:


Problema resolvido!

coloquei a minha funcao que valida a resolucao do sistema num modulo separado.
e o principal coloquei Option Explicit

valeu galera

olha o codigo como ficou...

  
Option Explicit

Private Const LOCALE_SSHORTDATE = &H1F
Private Declare Function GetSystemDefaultLCID Lib  kernel32  () As Long
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 GetLocaleInfo Lib  kernel32  Alias  GetLocaleInfoA  (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long

Public Function VerificaDataHora() As String
    
    Dim FormatString    As String * 11
    Dim ItWorked        As Boolean
    Dim Msg             As String
    Dim fData           As String
    Dim lngLocale       As Long
    
    ItWorked = GetLocaleInfo(GetSystemDefaultLCID, LOCALE_SSHORTDATE, FormatString, 11)
    If FormatString <>    Then
        VerificaDataHora = Left(FormatString, InStr(FormatString, Chr(0)) - 1)
    Else
        VerificaDataHora =  
    End If
    
    If VerificaDataHora <>  dd/MM/yyyy  Then
        Msg =  O formato da data do windows difere do padrão do sistema!  & vbCrLf
        Msg = Msg &  (Padrão do Sistema: dd/MM/yyyy / Padrão do Windows:   & VerificaDataHora &  )  & vbCrLf & vbCrLf
        Msg = Msg &  Deseja alterar o padrão do sistema para o padrão do sistema?
        If MsgBox(Msg, vbQuestion + vbYesNo, App.Title) = vbNo Then
            End
        Else
            fData =  dd/MM/yyyy
            lngLocale = GetSystemDefaultLCID()
            If SetLocaleInfo(lngLocale, LOCALE_SSHORTDATE, fData) = False Then
                MsgBox  Houve uma falha na alteração do formato da data do windows! , vbCritical + vbOKOnly, App.Title
                End
            End If
        End If
    End If

End Function





 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por WEBMASTER em 18/08/2009 10:03:45