PROBLEMAS COM HORA DO SERVIDOR
Bom dia amigos,
Um assunto aparentemente tão simples e tão complicado de resolver. Já pesquisei na Web e os códigos que encontrei não funcionam para win98, winME, só no Win Xp e não sei se em todas as versões superiores. O código foi como nesse link: http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=76927&varWorld=
Meu aplicativo tem um controle de registro que avalia o perÃodo de uso, como a maioria faz, porém checando a data do windows (local). O problema que parece muitos desenvolvedores também tem é com a alteração do relógio/calendário do sistema. Se o usuário atrasa a data meu programa é bloqueado, mas se adianta a data até o limite da licença pode entrar, só que esse acesso é gravado e quando volta a data anterior (atual) ou outro usuário na rede entrar com a data correta o sistema não permitirá por interpretar como violação da licença.
A única solução que vejo é pegar a data do servidor, assim todos peguam a mesma data independente da máquina local. Isso não está sendo possÃvel em função de N versões do windows, cada uma tem um recurso diferente da outra ou não dispõe de recurso para isso como o Win98 e talvez o ME.
Tentei o Net Time \\Nome Servidor, porém as mensagens geradas são diferentes de windows para windows e até de máquina para máquina ex:
Win 98 - [Ô]Hora atual em \\Nome Servidor é 18/03/2010 9:58[Ô]
Win XP Pro - [Ô]A hora atual em \\Nome Servidor é 3/18/2010 9:58 AM[Ô]
Veja que ambos os SO usados estão em Português e o comando foi feito em DOS, assim não dá para entender porque um veio dd/mm/aaaa e outro veio mm/dd/aaaa se não está no windows para pegar configurações regionais e sim no DOS. A'lém disso há um [Ô]A[Ô] inicial no XP e o [Ô]AM[Ô] no final.
Outro problema é que se eu gerar um TXT para tentar capturar a DATA dentro do VB6, teria uma série de dificultades como:
- saber como separar o texto da data, já que cada micro tem uma mensagem diferente e não tenho como testar em cada versão, idioma, etc...
- saber se a data está no padrão dia/mês ou mês/dia, já que 3/4 pode ser dia 3 de abril ou 4 de março.
Estou fazendo uma pesquisa nos clientes para saber se alguém ainda usa versão do Windows inferior a XP, assim poderia abandonar a compatibilidade com esses S.O mais antigos, porém o problema pode ocorrer entre os mais recentes também.
Porém surge outras dúvidas:
1- será que o código do link acima (NetApi32.dll) é compatÃvel com qualquer versão superior ao XP?
2- será que essa rotina funciona para usuários sem permissão de administrador na rede com qualquer windows?
Um assunto aparentemente tão simples e tão complicado de resolver. Já pesquisei na Web e os códigos que encontrei não funcionam para win98, winME, só no Win Xp e não sei se em todas as versões superiores. O código foi como nesse link: http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=76927&varWorld=
Meu aplicativo tem um controle de registro que avalia o perÃodo de uso, como a maioria faz, porém checando a data do windows (local). O problema que parece muitos desenvolvedores também tem é com a alteração do relógio/calendário do sistema. Se o usuário atrasa a data meu programa é bloqueado, mas se adianta a data até o limite da licença pode entrar, só que esse acesso é gravado e quando volta a data anterior (atual) ou outro usuário na rede entrar com a data correta o sistema não permitirá por interpretar como violação da licença.
A única solução que vejo é pegar a data do servidor, assim todos peguam a mesma data independente da máquina local. Isso não está sendo possÃvel em função de N versões do windows, cada uma tem um recurso diferente da outra ou não dispõe de recurso para isso como o Win98 e talvez o ME.
Tentei o Net Time \\Nome Servidor, porém as mensagens geradas são diferentes de windows para windows e até de máquina para máquina ex:
Win 98 - [Ô]Hora atual em \\Nome Servidor é 18/03/2010 9:58[Ô]
Win XP Pro - [Ô]A hora atual em \\Nome Servidor é 3/18/2010 9:58 AM[Ô]
Veja que ambos os SO usados estão em Português e o comando foi feito em DOS, assim não dá para entender porque um veio dd/mm/aaaa e outro veio mm/dd/aaaa se não está no windows para pegar configurações regionais e sim no DOS. A'lém disso há um [Ô]A[Ô] inicial no XP e o [Ô]AM[Ô] no final.
Outro problema é que se eu gerar um TXT para tentar capturar a DATA dentro do VB6, teria uma série de dificultades como:
- saber como separar o texto da data, já que cada micro tem uma mensagem diferente e não tenho como testar em cada versão, idioma, etc...
- saber se a data está no padrão dia/mês ou mês/dia, já que 3/4 pode ser dia 3 de abril ou 4 de março.
Estou fazendo uma pesquisa nos clientes para saber se alguém ainda usa versão do Windows inferior a XP, assim poderia abandonar a compatibilidade com esses S.O mais antigos, porém o problema pode ocorrer entre os mais recentes também.
Porém surge outras dúvidas:
1- será que o código do link acima (NetApi32.dll) é compatÃvel com qualquer versão superior ao XP?
2- será que essa rotina funciona para usuários sem permissão de administrador na rede com qualquer windows?
qual bd vc usa ?, eu pego a hora do servidor sql server.
Edson não tem DB. Estou para desenvolver uma aplicação com FB ou SQL, mas nesse caso não tem DB, por isso preciso de algo via VB/Windows para resolver.
Saudações, LUIS HERRERA (há quanto tempo, hein!).
Uma solução possÃvel, seria você criar uma espécie de SERVIDOR DE LICENÇAS que rode na máquina SERVIDOR.
Seria mais ou menos assim:
Você cria um PROJETO com um FORM que contenha o componente WINSOCK.
Este SERVIDOR DE LICENÇAS só serviria para pegar a DATA e HORA do SERVIDOR e repassar para as ESTAÇÕES via REDE.
Deste modo, independente da versão do WINDOWS, você utiliza as funções nativas do VB6 (Now, Date ou Time) para recuperar a data do sistema.
Uma solução possÃvel, seria você criar uma espécie de SERVIDOR DE LICENÇAS que rode na máquina SERVIDOR.
Seria mais ou menos assim:
Você cria um PROJETO com um FORM que contenha o componente WINSOCK.
Este SERVIDOR DE LICENÇAS só serviria para pegar a DATA e HORA do SERVIDOR e repassar para as ESTAÇÕES via REDE.
Deste modo, independente da versão do WINDOWS, você utiliza as funções nativas do VB6 (Now, Date ou Time) para recuperar a data do sistema.
Olá Tecla, faz tempo mesmo. Tô tão enrolado que faz tempo que não programa, só apago alguns incêndios. Acho que só volto a ativa realmente mais pro final do ano.
Até hoje só instalei o VB 2008 e nem cheguei a abrir o [Ô]bichinho[Ô] e já vai sair o 2010.
Nosso projeto parou não?
Sempre entro lá para ver se foi [Ô]Ressussitado[Ô], mas acho que tá todo mundo [Ô]Enrolado[Ô] na correria não.
Seua idéia parece ótima, vou pensar em como implantar.
RCMRO boa noite, eu nunca trabalhei com COM+ e não sei se funciona em Win 2008. Mas obrigado pela idéia.
Até hoje só instalei o VB 2008 e nem cheguei a abrir o [Ô]bichinho[Ô] e já vai sair o 2010.
Nosso projeto parou não?
Sempre entro lá para ver se foi [Ô]Ressussitado[Ô], mas acho que tá todo mundo [Ô]Enrolado[Ô] na correria não.
Seua idéia parece ótima, vou pensar em como implantar.
RCMRO boa noite, eu nunca trabalhei com COM+ e não sei se funciona em Win 2008. Mas obrigado pela idéia.
Tópico encerrado , respostas não são mais permitidas