Fórum pegar a hora do micro?? #219661

10/03/2004

0

sera que tem como pegar a hora em que o micro foi desligado ???
e pegar ela quando ele for ligado??


Zumbi

Zumbi

Responder

Posts

10/03/2004

Rômulo Barros

Para isso, basta criar uma aplicação ´Oculta´ (Background) e no evento OnClose ou OnDestroy, capturar a hora e armazenar em um arquivo texto. Esta aplicação tb terá q ser executada no boot do sistema para que a hora em que o computador foi desligado, possa ser captuda. Para o boot do windows, utilize o registro (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run) :twisted: :twisted: :twisted: :twisted: :twisted:


Responder

Gostei + 0

10/03/2004

Skaarj

sim.. precisamos primeiro interceptar o desligamento do Windows.. e dae gravar a hora, agora onde voce vai salvar se é em database ou INI, escolhe
private
   { Private declarations }
   procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message WM_QueryEndSession;
.
.
.
procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
        [b]//aqui voce coloca onde salvar a hora[/b]
        Msg.Result := 1; //permite a continuidade do desligamento
end;

Agora quando ligar voce busca no teu INI ou na tua database o registro referente a essa hr..
[a dica do desligamento foi feita por Marco Antonio do clubedelphi][/code]


Responder

Gostei + 0

10/03/2004

Zumbi

como que eu faço para executar a aplicação no boot???


Responder

Gostei + 0

10/03/2004

Skaarj

vc só vai iniciar a aplicação delphi qndo carregar o Windowns..
pode por na pasta do INICIAR ou entao fazer uma referencia nessa chave do registro:
[b:5393851b6a]HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run[/b:5393851b6a]
olha pra ver a qnto tempo o win foi ligado[DTDelphi]:
- Como saber há quanto tempo o WINDOWS foi inicializado? Use a função GetTickCount da API do Windows. Ela retorna o intervalo em milisegundos. Obs.: Esta função é útil quando se quer determinar o intervalo de tempo decorrido durante uma ação de um aplicativo.

var
  TempoInicial, TempoFinal, Intervalo: Integer
begin
  TempoInicial := GetTickCount;
  ...
  // código a ser executado
  ...
  TempoFinal := GetTickCount;
  Intervalo := TempoFinal - TempoInicial;
end. 



Responder

Gostei + 0

10/03/2004

Zumbi

ok... mais uma coisa nao sei se nao teria que fazer um topico diferente mas...

tem como pegar a hora que se desliga o monitor????


Responder

Gostei + 0

10/03/2004

Lucas Silva

tem como pegar a hora que se desliga o monitor????


ai você complicou mais ainda.....


Responder

Gostei + 0

10/03/2004

Zumbi

desculpa....

esquecem essa parte:
[quote = ´Zumbi´]tem como pegar a hora que se desliga o monitor????


como que eu posso fazer isso:

[quote =´Undeclared Identifier´]Esta aplicação tb terá q ser executada no boot do sistema para que a hora em que o computador foi desligado, possa ser captuda. Para o boot do windows, utilize o registro (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)



Responder

Gostei + 0

10/03/2004

Skaarj

Segue um exemplo de ler valores das chaves de registro:
procedure frmMain.LerRegistro;
const
Raiz : String = ?Software\Programa´;
var
Registro : TRegistry;
begin
// Chama o construtor do objeto
Registro := TRegistry.Create;
with Registro do
begin
// Somente abre se a chave existir
if OpenKey (Raiz, False) then
// Envia as informações ao form, vendo se os valores existem, primeiramente...
if ValueExists (´Largura´) then
Width := ReadInteger (´Largura´);
if ValueExists (´Altura´) then
Height := ReadInteger (´Altura´);
if ValueExists (´Esquerda´) then
Left := ReadInteger (´Esquerda´);
if ValueExists (´Topo´) then
Top := ReadInteger (´Topo´);
// Envia as informações para as caixas Abrir e Salvar.
OpenDialog1.InitialDir := ReadString (´Abrir Inicial´);
SaveDialog1.InitialDir := ReadString (´Salvar Inicial´);
// Fecha a chave e o objeto
Registro.CloseKey;
Registro.Free;
end;



Responder

Gostei + 0

10/03/2004

Zumbi

valeu vamos ver o que eu consigo.. fazer...


Responder

Gostei + 0

10/03/2004

Skaarj

Eu vi uma parada de desligar o monitor, v se t ajuda:
uses Windows
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);
//desligar
SendMessage(Application.Handle, WM_SYSCOMMAND,
SC_MONITORPOWER, -1);
//ligar


Responder

Gostei + 0

10/03/2004

Neguete

[quote:4b795d5fb6=´Undeclared Identifier´]Para isso, basta criar uma aplicação ´Oculta´ (Background)...[/quote:4b795d5fb6]

Como se faz para para rodar uma aplicação em Background ??


Responder

Gostei + 0

11/03/2004

Kyonak

form1.hide deixa a aplicação em background.


Responder

Gostei + 0

11/03/2004

Zumbi

e como fazela voltar do hide??


Responder

Gostei + 0

11/03/2004

Kyonak

form1.show


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar