Página 1 de 1
Data e Hora do Executável
Enviado: 09 Dez 2008 11:37
por Garoto de Programa
Prezados,
Possuo uma aplicação que funciona da seguinte maneira:
- No servidor fica o banco de dados.
- Nas estações ficam os executáveis do sistema. Tenho um controle a parte para manter o mesmo executável nas estações.
O que eu desejo é pegar a data e a hora de modificação do executável que esta sendo utilizado. Mas como o diretório atual é o do servidor, eu não consigo pegar a data do executável local. A chamada do executável pelo Windows ja passa a pasta de trabalho do servidor, então não tem como pegar a data antes de mudar para a pasta de trabalho pois já inicia com a pasta atual no servidor.
Fazendo referência ao Delphi eu tenho a função Application.Exename que me retorna a path completa do executável, desta forma tenho uma referência do executável que estou utilizando, mas não conheço ainda uma função semelhante no xHarbour.
Bom agradeço o seu interesse por ler este post, e caso eu descubra como fazê-lo estarei postando aqui a resposta.
Re: Data e Hora do Executável
Enviado: 09 Dez 2008 13:00
por infosys2
cExeName:=UPPER(EXENAME()) // Pegar o nome completo do executavel
Esta funcao pega o nome completo do executavel...
Re: Data e Hora do Executável
Enviado: 13 Dez 2008 15:04
por sygecom
ou
Código: Selecionar todos
***********VEREFICA O NOME DO EXECUTAVEL E O CAMINHO DO MESMO*******************
*NomeExecutavel() // verefica o nome
*NomeExecutavel(.t.) // verefica o caminho
********************************************************************************
Function NomeExecutavel(lPath)
LOCAL nPos, cRet
If Empty(lpath)
nPos:= RAT("\", hb_argv(0))
cRet:= substr(hb_argv(0), nPos+1)
else
cRet:= hb_argv(0)
endif
Return cRet
Exemplo pegando data e hora do Exe:
alert("Data da Ultima Atualização.: "+Data_Hora_ARQ(NomeExecutavel()))
Código: Selecionar todos
#include "Directry.ch"
****************************
Function Data_Hora_ARQ(vArq)
****************************
SET CENTURY ON
SET DATE BRITISH
SET EPOCH TO 2000
aDir := Directory( vArq )
aRet := Transform(DtoC(aDir[1,3]),"@d")
aRet2 := aDir[1,4]
Return( aRet + " - " + aRet2 )
Data e Hora do Executável
Enviado: 27 Mar 2012 16:53
por chrissoares
Bem,
Quando estava procurando por esta solução, não encontrei em nenhum local, mas agora que estava pesquisando sobre gerar arquivos PDF, encontrei a solução para este problema. Por este motivo resolvi compartilhar com os novatos como eu.
No xHarbour existem duas funções chamadas FileDate(cFileName) e FileTime(<cFileName>, <nAttributes>) que retornam a Data e a Hora de modificação de um arquivo qualquer. Os parâmetros destas funções são opcionais, sendo que elas vão utilizar o ultimo arquivo encontrado pela função FileSeek(). Mas para este caso deste tópico seria necessário passar o Nome do Executável como Parâmetro.
Um exemplo Simples para o seu uso seria.
Código: Selecionar todos
procedure main()
Alert(FileDate(ExeName())) // Atenção pois o retorno da função FileDate é uma data.
Alert(FileTime(ExeName())) // A função FileTime retorna uma String.
Return nil
No código usei a função ExeName(), como foi sugerido pelo colega infosys2, ela vai retornar o nome do executável da sua aplicação, é útil quando alguém trocar o nome dele, assim não vai gerar um erro de arquivo não encontrado.
Abraços a todos os colaboradores e que Deus continue abençoando cada um de vocês.
Espero
Data e Hora do Executável
Enviado: 27 Mar 2012 20:16
por Pablo César
Oi Christiano, realmente são úteis as dicas que você deixou. No entanto a questão fundamental do problema do "Garoto de Programa" é que não consegue pegar a data e hora do executável local, da estação. Veja:
Garoto de Programa escreveu:não consigo pegar a data do executável local
Não sei se ele já resolveu o problema. Mas sendo assim, eu queria saber se existe algum arquivo .BAT que chama o sistema. E se no arquivo .BAT posiciona-se na pasta local na estação. Daí seria bem fácil dar a solução. Pois daí então caberia colocar a unidade C: para indicar que refere-se ao exe local. Exemplo:
FileDate("C:"+Substr(ExeName(), (RAT("\",ExeName()))+1)) (aqui remove qualquer caminho ou path).
Data e Hora do Executável
Enviado: 29 Set 2016 15:28
por asimoes
Para gravar data e hora de criação do executável eu faço assim:
na bat exemplo:
hbmk2 cadastra.hbp -rebuild -bldhead=compdatetime.ch
Eu criei um header chamado ambienteaplic.ch que é incluído no PRG principal
Assim, qualquer lib do meu sistema consegue pegar os valores deste include.
AmbienteAplic.ch
Código: Selecionar todos
FUNCTION CompDateTime(aCompDateTime)
#include "compdatetime.ch"
aCompDateTime:={ DTOC(STOD(_HBMK_BUILD_DATE_)), _HBMK_BUILD_TIME_}
RETURN aCompDateTime
Como?
Código: Selecionar todos
aCompDateTime:={}
Eval({||CompDateTime(@aCompDateTime)})
cDataExe := aCompDateTime[1]+" "+aCompDateTime[2]