Clipper On Line • Ver Tópico - Rotina para inclusão de data e hora na inicialização-Windows

Rotina para inclusão de data e hora na inicialização-Windows

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

Rotina para inclusão de data e hora na inicialização-Windows

Mensagempor MEDEIROS » 05 Jan 2012 07:51

Olá amigos !Esse é meu primeiro tópico aqui e como já estou há mais de 15 anos sem fazer uso do Clipper, confesso ter esquecido um pouco das muitas funções ou rotinas desta linguagem tão apaixonante. Bom, de uns tempos para cá, meu computador já não está mais guardando a data e a hora, retornando sempre para 01/01/2002 (Já coloquei uma bateria nova e não adiantou) e gostaria de colocar na inicialização do Windows, um pequeno programa para a digitação da data e da hora para que o Windows (Sistema) assumisse estas novas inclusões para não ter que fazê-lo por dentro do Windows via mouse. Este programa guardaria a ultima data e hora digitadas numa variável para que fosse restauradas na próxima inicialização do sistema. Agradeço antecipadamente a colaboração de vocês e fico no aguardo de suas respostas. ( Clipper 5.0 ) S.F.Medeiros-Maricá-RJ.
MEDEIROS
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 3
Data de registro: 04 Jan 2012 23:44
Cidade/Estado: MARICÁ-RJ
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Rotina para inclusão de data e hora na inicialização-Windows

Mensagempor Pablo César » 05 Jan 2012 08:59

Seja bem vindo ao fórum Medeiros ! (começou bem no fórum, pois é seu dia de sorte !)

Eu acostumava colocar no autoexec.bat os comandos do DOS: DATE e TIME mas como você está querendo guardar a ultima data e hora digitada você terá que fazer um programa que guarde essa informações e dispare os comandos DATE e TIME para que SO assuma. De todas formas você irá precisar colocar na inicialização do Windows. Você poderia colocar um arquivo BAT na pasta C:\Documents ans Settings\All Users\Menu Iniciar\Programas\Inicializar se for WinXP ou colocar no autoexec.bat se for Win98 ou versão anterior.

A confecção do arquivo BAT teria que ter o seguinte:
@ECHO OFF
C:\ACERTA.EXE
CALL ATUALIZA.BAT
Observe que coloquei o programa no raiz e depois disso executaríamos outro arquivo BAT que o ACERTA.PRG irá criar.

Sugiro colocar o programa no raiz porque é mais fácil de localizar, mas pode colocar onde você achar melhor, o importante é definí-lo no arquivo BAT que disparará o ACERTA.EXE e o ATUALIZA.BAT.

Como as informações que irão ser gravadas são as ultimas e não todas. Podemos escolher em guardá-las num arquivo .MEM lembra desse arquivo ? é um arquivo que grava as variáveis de memoria em arquivo. Ocupa muito pouco espaço. Mas também pode gravar em arquivo texto também. Agora se precisar guardar todos os acertos de horas, isto é, todos os acertos de data e hora toda vez que é inicializado o computador, então deverá utilizar o arquivo DBF.

Vamos então aos detalhes para fazer o aplicativo:
/*
   Nome do programa.........: ACERTA.PRG
   Desenvolvido por.........: Pablo César Arrascaeta
   Objetivo do programa.....: Acerta data e hora do Sistema Operacional
   Ferramenta de programa‡Æo: Clipper versÆo 5.2e + CT.LIB
*/

SET DATE TO BRITISH
SET CENTURY ON

If !File("LASTIME.MEM")
   OS_DATA := Date()
   OS_HORA := Substr(Time(),1,5)
   Save to LASTIME all like OS_*
Endif
Restore from LASTIME Additive
dData := OS_DATA
cHora := OS_HORA

Do While .T.
   Clear Screen
   @ 12,10 SAY "Informe a data atual:" GET dData Valid VerData(dData,OS_DATA)
   @ 13,10 SAY "Informe a hora atual:" GET cHora Picture "99:99" Valid VerHora(cHora,OS_HORA)
   Read
   If !Lastkey()=27
      Exit
   Endif
Enddo
OS_DATA := dData
OS_HORA := cHora
Save to LASTIME all like OS_*
Memowrit("C:\ATUALIZA.BAT","DATE "+DtoC(dData)+Chr(13)+Chr(10)+"TIME "+cHora)

Function VerData(dDt,dDo)
If Empty(dDt)
   Alert("Nao pode deixar sem data !")
   Return .F.
Endif
If dDt<dDo
   If Alert("A data digitada nao pode ser mais antiga;que a ultima registrada !;;Confirma a data ou deseja digitar outra ?;;",{"Digitar outra","Confirma data"})=2
      lRet := .T.
   Else
      lRet := .F.
   Endif
Else
   lRet := .T.
Endif
Return lRet

Function VerHora(cHr)
If !Len(Alltrim(cHr)) = 5
   Alert("A hora nao foi completamente digitada !")
   Return .F.
Else
   If !TIMEVALID(cHr)
      Alert("Precisa colocar a hora certa !")
      Return .F.
   Endif
   /* Poderia também verificar se é o mesmo dia e checar que a hora digitada não seja mais cedo que a que foi grava */
Endif
Return .T.
Neste exemplo o utilitário verifica que a data digitada não seja mais antiga que a ultima registrada. Mesmo assim pergunta se quer confirmar ou digitar outra. Também verifica que a hora esteja completa e seja verdadeira. Espero que tenha contribuido para o seu aprendizado.

Este programa guardaria a ultima data e hora digitadas numa variável para que fosse restauradas na próxima inicialização do sistema.
Não aconselho que o programa ACERTA restaure automaticamente a data e hora após o primeiro acerto de DATA/HORA pelo programa. Pois você poderá ligar o computador no segundo dia ou não necessariamente no mesmo dia, ocorrendo um acerto de data/hora errada. Pode como eu fiz, trazer a ultima data gravada e até mesmo verificar que a hora digitada não seja mais cedo que a grava (isso se for no mesmo dia).

Agora se esse computador estiver em rede e melhor ainda estiver numa rede com internet, aí tem outra situação que poderíamos implementar para que atualize automaticamente sem intervenção do usuário (sem digitar nada) ao menos que a rede ou internet falhe aí então passaríamos a invocar o ACERTA.EXE que também pode trabalhar em conjunto.

fico no aguardo de suas respostas. ( Clipper 5.0 ) S.F.Medeiros-Maricá-RJ.
Clipper 5.0 ? Essa versão tem BUG !! Aconselho ao colega atualizar o seu Clipper para a versão 5.2.e, aqui no fórum temos ele a disposição na seção de Downloads (clique aqui).

Se houverem erros ou dúvidas, pode postar aqui que trataremos de sanar todas.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Rotina para inclusão de data e hora na inicialização-Windows

Mensagempor MEDEIROS » 05 Jan 2012 18:15

Prezado e nobre amigo Pablo César ! Primeiramente agradeço-lhe pela rapidez e atenção dada ao meu caso que pelo que já pesquisei na Internet, tem acontecido com bastantes pessoas caso idêntico ao meu. O micro é antigo mas parece novo e está bonzinho ! rs. ( Mobo e CPU Intel P4, 2.8 GHZ) e só tem esse probleminha que torna-se chato ter que ficar usando o mouse para alterar: dia, mês, ano, horas, minutos e até segundos. Na digitação é bem mais fácil. O que eu queria era isso mesmo que você me mandou e lembro-me que a variável para guardar as ultimas informações que eu usava na época era algo como "save to (nome do arquivo.DAT) all like *, e para restaurar: restore from (nome do arquivo.DAT) all like *", se não me engano. Bom, te agradeço mais uma vêz e me sinto satisfeito por ter sido atendido tão depressa e realmente por pessoa gabaritada para tal como você! Um abraço !. S.F.Medeiros-Orla da Barra-Maricá-RJ.
MEDEIROS
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 3
Data de registro: 04 Jan 2012 23:44
Cidade/Estado: MARICÁ-RJ
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Rotina para inclusão de data e hora na inicialização-Windows

Mensagempor Pablo César » 05 Jan 2012 18:31

Puxa, agradeço a suas palavras e posso dizer que foi um prazer mesmo ter atendido a sua solicitação. Espero que você retorne a programar e participe ativamente aqui no fórum. Ficarei contente em insentivar você a programar na nossa linguagem xBase. É muito gostoso e produtiva. Mas o Clipper está com os dias contados (já faz anos que ouvimos isso) ele se mantém, mas já existe uma ferramenta muito melhor que é o Harbour que pode transformar seus programas em Clipper em 32 bits. E ainda tem ferramentas e bibliotecas de interface gráficas que são bem mais fácil de dominar. Claro que nós temos que sempre dar o primeiro passo. Mas até mesmo se você precisar converter o seus programas em Clipper para Harbour através de uma IDE, o que facilita bastante a instransição, você dê um alô que terei prazer de indicar uma ferramenta free com fácil comprensão, pricipalmente para todos nós clippeiros velhos.

Eu estou desenvolvendo neste momentos esse mesmo aplicativo em padrão Windows, isto é, GUI (interface gráfica) e logo logo irei disponibilizá-lo na seção de Downloads. Este aplicativo irá se instalar no autorun através do REGISTRO do Windows, que comumente utilizamos o MSCONFIG/Inicializar e mudará de dentro d programa a data e hora. Estou pensando em adicionar mais duas opções para obter a data e a hora: de um terminal e da internet. Por falar disso, você ainda não respondeu se o seu computador está em rede e se está em rede com internet. Também estou curioso em saber se baixou a ultima versão do Clipper (alias a versão mais estável, a 5.2e). Gostaria de saber se você conseguiu compilar o exemplo postado e se tiver dúvidas, sinta-se a vontade, pois ninguém nasce sabendo...

Bom quando tiver pronto, postarei aqui uma mensagem dizendo que estará disponível na seção de Downloads o novo aplicativo.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Rotina para inclusão de data e hora na inicialização-Windows

Mensagempor MEDEIROS » 05 Jan 2012 20:55

Olá amigo Pablo ! Agradeço-lhe mais uma vêz pela sua dedicação e preocupação em exercitar toda a essência e natureza deste site "Clipper On Line" que é a divulgação, intercâmbio entre os membros e ajuda no esclarecimento de dúvidas de todos os participantes como essa minha. Bem, não sei se estou compilando direito mas, está apresentando um erro após a compilação conforme a seguir: "UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH: SIMBOL TIMEVALID". Me corrija se eu estiver errado na compilação, pois estou fazendo assim: "clipper atualiza.prg" e depois "rtlink fi atualiza". Como te falei anteriormente, eu andei fazendo diversos programinhas para uso próprio no trabalho há mais de 15 anos atrás e eu não era muito experiente em Clipper. Fico no aguardo de mais esse "help" seu ! Um abraço! SF.Medeiros-RJ.
MEDEIROS
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 3
Data de registro: 04 Jan 2012 23:44
Cidade/Estado: MARICÁ-RJ
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Rotina para inclusão de data e hora na inicialização-Windows

Mensagempor Pablo César » 05 Jan 2012 21:38

Para compilar, seria até conveniente que fosse com a versão do Clipper 5.2e, você deve compilar assim:

CLIPPER ACERTA (sem extensão) (ACERTA é o nome do PRG, o ATUALIZA é o BAT)
RTLINK FI ACERTA LIB CT (faltou você colocar a LIB CT) (se você não tiver baixe o Clipper do fórum como indiquei)
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Rotina para inclusão de data e hora na inicialização-Windows

Mensagempor Pablo César » 12 Jan 2012 08:11

Oi pessoal !

Medeiros, eu fiz um aplicativo que gostaria que você testasse. Serve para o mesmo propósito, só que desta vez é só baixar e executá-lo que após a primeira confirmação, você poderá tê-lo na inicialização do seu Windows, sem necessidade de criar arquivos bat nem nada. Espero que seja útil para você e para os demais !

http://www.pctoledo.com.br/forum/filebase.php?d=1&id=173&c_old=0&what=c&page=1

Obs.: Falo mais sobre o utilitário no seguinte tópico: http://www.pctoledo.com.br/forum/viewtopic.php?f=43&t=12675&start=0
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Rotina para inclusão de data e hora na inicialização-Windows

Mensagempor cjp » 02 Mai 2018 15:56

Pablo, estou procurando uma solução semelhante à que vc fez, estava analisando e tentando usar tua função, e notei a falta de algumas rotinas (como a buscanaweb()), para poder implementá-la em minha função.

Como poderia obtê-la?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes




Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro