Bloquear Data do Sistema
Olá galera...
Estou com uma dúvida... Gostaria de saber se há alguma forma, via programação Delphi, de bloquear o acesso às configurações do Relógio de um Sistema Windows 95 ou 98. Estou desenvolvendo um sistema de ponto para Funcionários, e queria evitar o acesso às aslterações do relogio, uma vez que todo o sistema se baseia na data do sist. operacional. Se algum puder me ajudar, agradeço desde já.
Atenciosamente,
VIVI =)
Estou com uma dúvida... Gostaria de saber se há alguma forma, via programação Delphi, de bloquear o acesso às configurações do Relógio de um Sistema Windows 95 ou 98. Estou desenvolvendo um sistema de ponto para Funcionários, e queria evitar o acesso às aslterações do relogio, uma vez que todo o sistema se baseia na data do sist. operacional. Se algum puder me ajudar, agradeço desde já.
Atenciosamente,
VIVI =)
Vivipeder
Curtidas 0
Respostas
Dopi
12/11/2004
Veja esse tópico:
http://delphiforum.icft.com.br/forum/viewtopic.php?t=52249&highlight=ecf+hora
http://delphiforum.icft.com.br/forum/viewtopic.php?t=52249&highlight=ecf+hora
GOSTEI 0
Marco Salles
12/11/2004
Eu Tb Estou Precisando Disso :
O Amigo[b:29053e1067] Dopi [/b:29053e1067]Sugeriu Verificar o Tópico:
http://delphiforum.icft.com.br/forum/viewtopic.php?t=52249&highlight=ecf+hora
So que não estou conseguindo acesso a ele :cry: :cry: :cry: :cry:
Alguem tem mais Alguma idéia De como evitar este acesso via código usando o delphi... :lol: :lol: :lol:
bloquear o acesso às configurações do Relógio de um Sistema Windows 95 ou 98.
O Amigo[b:29053e1067] Dopi [/b:29053e1067]Sugeriu Verificar o Tópico:
http://delphiforum.icft.com.br/forum/viewtopic.php?t=52249&highlight=ecf+hora
So que não estou conseguindo acesso a ele :cry: :cry: :cry: :cry:
Alguem tem mais Alguma idéia De como evitar este acesso via código usando o delphi... :lol: :lol: :lol:
GOSTEI 0
Marco Salles
12/11/2004
Continuando Minha Ardua Pesquisa , Encontrei Isto Neste Tópico:
http://forum.clubedelphi.net/viewtopic.php?t=52249&highlight=relogio
o amigo [b:a462203133]arielton.lima [/b:a462203133]Postou:
Alguem sabe e pode explicar mais detalhadamente Como Implementar
na prática as Dicas que Nosso Amigo Passou
Mudar o Comando Time :cry: :cry: :cry:
Como Acessar Usando o Novo Nome :cry: :cry: :cry:
renomear o ´timedate.cpl´.. :cry: :cry: :cry:
Senha para Entrar Na bios :cry: :cry: :cry: :cry:
[b:a462203133]Obrigado amigos[/b:a462203133]
http://forum.clubedelphi.net/viewtopic.php?t=52249&highlight=relogio
o amigo [b:a462203133]arielton.lima [/b:a462203133]Postou:
uma coisa que aprendi com alguns amigos...
(no caso do WIN98 (que eh realmente o caso)) foi alterar o COMMAND.COM... hexadecimal.
mudando o comando TIME p/ qualquer outro nome, exemplo: ´VIME´... a hora soh poderia ser alterar usando o comando VIME.
legal, neh...
então juntando isso... com o renomear o ´timedate.cpl´.. .fica quase perfeito.. a naum ser o usuario poder alterar pela BIOS... então seria colocar uma senha para entrar na bios e EUREKA ! tudo certo.
Alguem sabe e pode explicar mais detalhadamente Como Implementar
na prática as Dicas que Nosso Amigo Passou
Mudar o Comando Time :cry: :cry: :cry:
Como Acessar Usando o Novo Nome :cry: :cry: :cry:
renomear o ´timedate.cpl´.. :cry: :cry: :cry:
Senha para Entrar Na bios :cry: :cry: :cry: :cry:
[b:a462203133]Obrigado amigos[/b:a462203133]
GOSTEI 0
Dopi
12/11/2004
O problema é que o Forum mudou de endereço e todos os Links a ele mesmo ficaram ´mortos´
Se não me engano o tópico era esse aqui..
http://forum.clubedelphi.net/viewtopic.php?t=52249&highlight=ecf+hora
Se não me engano o tópico era esse aqui..
http://forum.clubedelphi.net/viewtopic.php?t=52249&highlight=ecf+hora
GOSTEI 0
Marco Salles
12/11/2004
É este mesmo amigo dopi
http://forum.clubedelphi.net/viewtopic.php?t=52249&highlight=ecf+hora
Mas o problema persiste:
o amigo arielton.lima Postou neste tópico relacionado acima:
Citação:
Alguem sabe e pode explicar mais detalhadamente Como Implementar
na prática as Dicas que Nosso Amigo Passou
Mudar o Comando Time :cry: :cry: :cry:
Como Acessar Usando o Novo Nome :cry: :cry: :cry:
renomear o ´timedate.cpl´.. :cry: :cry: :cry:
Senha para Entrar Na bios :cry: :cry: :cry:
http://forum.clubedelphi.net/viewtopic.php?t=52249&highlight=ecf+hora
Mas o problema persiste:
o amigo arielton.lima Postou neste tópico relacionado acima:
Citação:
uma coisa que aprendi com alguns amigos...
(no caso do WIN98 (que eh realmente o caso)) foi alterar o COMMAND.COM... hexadecimal.
mudando o comando TIME p/ qualquer outro nome, exemplo: ´VIME´... a hora soh poderia ser alterar usando o comando VIME.
legal, neh...
então juntando isso... com o renomear o ´timedate.cpl´.. .fica quase perfeito.. a naum ser o usuario poder alterar pela BIOS... então seria colocar uma senha para entrar na bios e EUREKA ! tudo certo.
Alguem sabe e pode explicar mais detalhadamente Como Implementar
na prática as Dicas que Nosso Amigo Passou
Mudar o Comando Time :cry: :cry: :cry:
Como Acessar Usando o Novo Nome :cry: :cry: :cry:
renomear o ´timedate.cpl´.. :cry: :cry: :cry:
Senha para Entrar Na bios :cry: :cry: :cry:
GOSTEI 0
Marco Salles
12/11/2004
Gostaria de descobrir um modo de esconder o Horário do Sistema quando o Aplicativo for Inicializado
No Evento OnShow :arrow: Esconde relogio
No Evento OnClose :arrow: Habilita o Relógio
Ou Mesmo Uma Idéia de como Esconde-lo, via Mudando De Nome, Redirencionando etc, Este Relógio, Para que o Usuário, Não tenha Acesso
No Evento OnShow :arrow: Esconde relogio
No Evento OnClose :arrow: Habilita o Relógio
Ou Mesmo Uma Idéia de como Esconde-lo, via Mudando De Nome, Redirencionando etc, Este Relógio, Para que o Usuário, Não tenha Acesso
GOSTEI 0
Kapak
12/11/2004
ShowWindow(FindWindowEx(FindWindowEx(FindWindow(´Shell_TrayWnd´, nil), 0, ´TrayNotifyWnd´, nil), 0, ´TrayClockWClass´, nil), SW_Hide);
GOSTEI 0
Marco Salles
12/11/2004
Show..... :P :P ..Realmente o relógio Some
Mas o Usuário continua acessando o Horário do Sistema :cry: :cry: :cry:
Basta ele dar Um Click Na Barra De Ferramentas :( :( :(
Mas o Usuário continua acessando o Horário do Sistema :cry: :cry: :cry:
Basta ele dar Um Click Na Barra De Ferramentas :( :( :(
GOSTEI 0
Kapak
12/11/2004
Como assim? O vão do relógio não some ?
GOSTEI 0
Ifdo_ltda
12/11/2004
[b:9fa9c3b066]Eu tenho uma idéia, ai cabe ver se te agrada ou naum[/b:9fa9c3b066]
Eu precisei fazer algo parecido uma vez e crie uma funcao que verificava a data e hora do sistema a cada minuto, e registrava em uma variavel(pode ser um arquivo .ini o no registro) ai ficava verificado se a data era menor do que estava na variavel....
Pelo menos eu sei q da certo.. mas agora tem q ver c para seu sistema dá!!!
Abraços!!! :P
Eu precisei fazer algo parecido uma vez e crie uma funcao que verificava a data e hora do sistema a cada minuto, e registrava em uma variavel(pode ser um arquivo .ini o no registro) ai ficava verificado se a data era menor do que estava na variavel....
Pelo menos eu sei q da certo.. mas agora tem q ver c para seu sistema dá!!!
Abraços!!! :P
GOSTEI 0
Marco Salles
12/11/2004
Kapak:
O vao do Relogío Some... Mas o relogio continua sendo acessado, via atalho:
Por Exemplo: Dando Um Click Na Barra De Ferramentas e Acessando
Ajustar a Data e Hora :cry: :cry: :cry: :cry:
ifdo_ltda:
Sim.. Quando se esta Dentro Do Aplicativo, de fato, Podemos Ficar de Olho Nestas Alterações.. Mas o Problema e quando estivermos fora.
Por exemplo, antes de abrir o aplicativo a hora pode ser alterada , para um horário conveniente a do usuário :cry: :cry: :cry: :cry:
Eu estou achando que ao Usar o Time Do Sistema no Aplicativo, Onde este Time é fundamental , Para avaliar algumas situações(Exemplo : Banco de Horas), Não é Definitivamente uma boa Idéia.
O Aplicativo Fica sujeito a possíveis situaçoes fraudulentas por parte de usuários . Mas se Conseguisemos Renomear os arquivos Do Windows , Responsáveis Por Este Time, Seria Uma nova Leva de Raciocineo..Como Foi Tentado Pelo Nosso Amigo arielton.lima Postou No Tópico
http://forum.clubedelphi.net/viewtopic.php?t=52249&highlight=ecf+hora
[b:cf4e85c44c]So que ele não explicou como Finalizar estas idéias[/b:cf4e85c44c]
Mudar o Comando Time :?: :?:
Como Acessar Usando o Novo Nome :?: :?:
renomear o ´timedate.cpl´.. :?: :?:
Senha para Entrar Na bios :?: :?:
Como assim? O vão do relógio não some ?
O vao do Relogío Some... Mas o relogio continua sendo acessado, via atalho:
Por Exemplo: Dando Um Click Na Barra De Ferramentas e Acessando
Ajustar a Data e Hora :cry: :cry: :cry: :cry:
ifdo_ltda:
Eu tenho uma idéia, ai cabe ver se te agrada ou naum
Eu precisei fazer algo parecido uma vez e crie uma funcao que verificava a data e hora do sistema a cada minuto, e registrava em uma variavel(pode ser um arquivo .ini o no registro) ai ficava verificado se a data era menor do que estava na variavel....
Pelo menos eu sei q da certo.. mas agora tem q ver c para seu sistema dá!!!
Abraços!!!
Sim.. Quando se esta Dentro Do Aplicativo, de fato, Podemos Ficar de Olho Nestas Alterações.. Mas o Problema e quando estivermos fora.
Por exemplo, antes de abrir o aplicativo a hora pode ser alterada , para um horário conveniente a do usuário :cry: :cry: :cry: :cry:
Eu estou achando que ao Usar o Time Do Sistema no Aplicativo, Onde este Time é fundamental , Para avaliar algumas situações(Exemplo : Banco de Horas), Não é Definitivamente uma boa Idéia.
O Aplicativo Fica sujeito a possíveis situaçoes fraudulentas por parte de usuários . Mas se Conseguisemos Renomear os arquivos Do Windows , Responsáveis Por Este Time, Seria Uma nova Leva de Raciocineo..Como Foi Tentado Pelo Nosso Amigo arielton.lima Postou No Tópico
http://forum.clubedelphi.net/viewtopic.php?t=52249&highlight=ecf+hora
uma coisa que aprendi com alguns amigos... (no caso do WIN98 (que eh realmente o caso)) foi alterar o COMMAND.COM... hexadecimal. mudando o comando TIME p/ qualquer outro nome, exemplo: "VIME"... a hora soh poderia ser alterar usando o comando VIME. legal, neh... então juntando isso... com o renomear o "timedate.cpl".. .fica quase perfeito.. a naum ser o usuario poder alterar pela BIOS... então seria colocar uma senha para entrar na bios e EUREKA ! tudo certo.
[b:cf4e85c44c]So que ele não explicou como Finalizar estas idéias[/b:cf4e85c44c]
Mudar o Comando Time :?: :?:
Como Acessar Usando o Novo Nome :?: :?:
renomear o ´timedate.cpl´.. :?: :?:
Senha para Entrar Na bios :?: :?:
GOSTEI 0
Kapak
12/11/2004
O vao do Relogío Some... Mas o relogio continua sendo acessado, via atalho:
Por Exemplo: Dando Um Click Na Barra De Ferramentas e Acessando
Ajustar a Data e Hora
Bom, aí tem várias formas de se modificar a data/hora, não só por esse menú, mas no .cpl e no prompt do dos. Renomeando o .cpl, esse menú não funciona e o Data/Hora do painel de controle desaparece; mas ainda assim resta o problema da janela dos que se vc renomear o ´[b:da880e2b9d]Time[/b:da880e2b9d]´ do cmd.exe, vc vai ter que renomear o nome da função
File[b:da880e2b9d]Time[/b:da880e2b9d]ToSystemTime da Kernel32.dll pq o cmd.exe monta o nome dessa função pelo nome do comando e é assim que a janela DOS consegue tb alterar a data/hora do Windows.
Se for de alguma ajuda, vc consegue ´saber´ se o usuário modificou a data da máquina tanto pelo Windows, quanto pelo DOS, implementado uma procedure do tipo message WM_TimeChange no seu aplicativo; quando essa msg chega é pq a data/hora já foi alterada e aí vc pode resetá-la pela função SetSystemTime.
GOSTEI 0
Marco Salles
12/11/2004
Uma luz no fim do tunel :P :P :P :P :P :P :P
So que Foram muitas as informações apresentadas. E eu gostei das idéias :P :P :P Mas gostaria de calmamente Implementa-las :lol: :lol: :lol:
Sera que daria para seguirmos nesta linha de raciocineo Passo a a passo:
1) Passo
Renomeando o .cpl, esse menú não funciona e o Data/Hora do painel de controle desaparece
Como e aonde renomear isto :?: :?: :?: :?:
Fiz Uma Busca no meu Pc e não encnontrei nenhum arquivo com esta
Extenção : [size=14:227d2aeb52][color=red:227d2aeb52].cpl[/color:227d2aeb52][/size:227d2aeb52]
2) Esta renomeação pode ser feita via código em delphi :?: :?: :?:
3) Este Processo pode ser reversível :?: :?: :?:
4)mas ainda assim resta o problema da janela dos que se vc renomear o ´Time´ do cmd.exe, vc vai ter que renomear o nome da função FileTimeToSystemTime da Kernel32.dll :cry: :cry: :cry:
[size=16:227d2aeb52][color=red:227d2aeb52]Não entendi bem esta parte e nen sei localizar esta funão e tão pouco renomea-la[/color:227d2aeb52][/size:227d2aeb52]
5) implementado uma procedure do tipo message WM_TimeChange no seu aplicativo; quando essa msg chega é pq a data/hora já foi alterada e aí vc pode resetá-la pela função SetSystemTime.
Esta ultima parte e uma boa idéia .. Mas tb nao sei implementa-la :oops: :oops: :oops:
Vai devagar que o santo e de barro :P :P :P
Mas de tudo gostei das idéias e gostaria de aprofunda-las :lol: :lol: :lol:
So que Foram muitas as informações apresentadas. E eu gostei das idéias :P :P :P Mas gostaria de calmamente Implementa-las :lol: :lol: :lol:
Sera que daria para seguirmos nesta linha de raciocineo Passo a a passo:
1) Passo
Renomeando o .cpl, esse menú não funciona e o Data/Hora do painel de controle desaparece
Como e aonde renomear isto :?: :?: :?: :?:
Fiz Uma Busca no meu Pc e não encnontrei nenhum arquivo com esta
Extenção : [size=14:227d2aeb52][color=red:227d2aeb52].cpl[/color:227d2aeb52][/size:227d2aeb52]
2) Esta renomeação pode ser feita via código em delphi :?: :?: :?:
3) Este Processo pode ser reversível :?: :?: :?:
4)mas ainda assim resta o problema da janela dos que se vc renomear o ´Time´ do cmd.exe, vc vai ter que renomear o nome da função FileTimeToSystemTime da Kernel32.dll :cry: :cry: :cry:
[size=16:227d2aeb52][color=red:227d2aeb52]Não entendi bem esta parte e nen sei localizar esta funão e tão pouco renomea-la[/color:227d2aeb52][/size:227d2aeb52]
5) implementado uma procedure do tipo message WM_TimeChange no seu aplicativo; quando essa msg chega é pq a data/hora já foi alterada e aí vc pode resetá-la pela função SetSystemTime.
Esta ultima parte e uma boa idéia .. Mas tb nao sei implementa-la :oops: :oops: :oops:
Vai devagar que o santo e de barro :P :P :P
Mas de tudo gostei das idéias e gostaria de aprofunda-las :lol: :lol: :lol:
GOSTEI 0
Kapak
12/11/2004
1-No meu caso que é o Win2000, ele está em: ´Pasta do Windows\System32\timedate.cpl´
2-Pode ser renomeado pelo Delphi:
RenameFile(´Pasta do Windows\System32\timedate.cpl´, ´Pasta do Windows\System32\timedate.xxx´);
3-É só inverter .xxx p/ .cpl
4-Quando vc altera data/hora pelo DOS, o command do DOS chama a função FileTimeToSystemTime da api kernel32 que altera a data do Windows. Aliás, vc nem precisa alterar a data/hora, qdo vc abre a janela DOS pelo cmd.exe, essa função já é carregada. Então supondo que vc altere o comando ´Time´ p/ ´[b:6d0a8138a8]Tempo[/b:6d0a8138a8]´, quando vc chamar a janela DOS, dará um erro dizendo que File[b:6d0a8138a8]Tempo[/b:6d0a8138a8]ToSystemTime não existe; isto pq o nome da função é montado pelo nome do comando. É meio estranho isso, mas é o que ocorre pelo menos no Win2000. Para vc poder alterar o nome da função da api, vc teria que ter o fonte da Kernel32; então acredito que seria um caminho muito difícil.
5-Para implementar a procedure:
2-Pode ser renomeado pelo Delphi:
RenameFile(´Pasta do Windows\System32\timedate.cpl´, ´Pasta do Windows\System32\timedate.xxx´);
3-É só inverter .xxx p/ .cpl
4-Quando vc altera data/hora pelo DOS, o command do DOS chama a função FileTimeToSystemTime da api kernel32 que altera a data do Windows. Aliás, vc nem precisa alterar a data/hora, qdo vc abre a janela DOS pelo cmd.exe, essa função já é carregada. Então supondo que vc altere o comando ´Time´ p/ ´[b:6d0a8138a8]Tempo[/b:6d0a8138a8]´, quando vc chamar a janela DOS, dará um erro dizendo que File[b:6d0a8138a8]Tempo[/b:6d0a8138a8]ToSystemTime não existe; isto pq o nome da função é montado pelo nome do comando. É meio estranho isso, mas é o que ocorre pelo menos no Win2000. Para vc poder alterar o nome da função da api, vc teria que ter o fonte da Kernel32; então acredito que seria um caminho muito difícil.
5-Para implementar a procedure:
Declare: procedure WMTimeChange(var Msg:TMessage); message WM_TimeChange; Depois: procedure TForm1.WMTimeChange(var Msg:TMessage); begin // Aqui a data/hora foi alterada tanto pelo DOS quanto pelo Windows end;
GOSTEI 0
Marco Salles
12/11/2004
Blz , mas voce sabe quanto e duro o caminho.... :D :D :D
1) O meu windows é o Xp. E por falar nele como este Sistema e Bom.
Mas este assunto não esta em Voga. O que de fato importa são outors Quinhentos.
Pois Bem , não consegui ainda descobrii o caminho deste arquivo no meu sistema :cry: :cry: :cry:
2)
Fiz Um Teste e não consegui Renomear.. Criei Uma Pasta [b:74056db993]MudarDeNome[/b:74056db993].. Nela Salvei Um Arquivo Do Word e dei o nome de [b:74056db993]PodeApagar[/b:74056db993]
Escrevi o Seguinte Código no Evento de Um Botão:
Emfim, não consegui renomear este Arquivo :cry: :cry: :cry: :cry:
3)
Faz sentido deste que o Passo 2 seja suficiente...
4)
Pularemos esta parte...
5)
Ok, Consegui Implementa-la :P :P :P :P , Mas não consegui implementar a segunda parte da dica :cry: :cry: :cry:
Como Poderemos então reseta-la :cry: :cry: :cry:
Bem No Geral acredito que dei um passo importante..
Obrigado pela participação.. :P :P :P :P :P :P :P
1) O meu windows é o Xp. E por falar nele como este Sistema e Bom.
Mas este assunto não esta em Voga. O que de fato importa são outors Quinhentos.
Pois Bem , não consegui ainda descobrii o caminho deste arquivo no meu sistema :cry: :cry: :cry:
No meu caso que é o Win2000, ele está em: ´Pasta do Windows\System32\timedate.cpl´
2)
2-Pode ser renomeado pelo Delphi:
RenameFile(´Pasta do Windows\System32\timedate.cpl´, ´Pasta do Windows\System32\timedate.xxx´);
Fiz Um Teste e não consegui Renomear.. Criei Uma Pasta [b:74056db993]MudarDeNome[/b:74056db993].. Nela Salvei Um Arquivo Do Word e dei o nome de [b:74056db993]PodeApagar[/b:74056db993]
Escrevi o Seguinte Código no Evento de Um Botão:
procedure TForm1.Button1Click(Sender: TObject); begin RenameFile(´C:\MudarDeNome\PodeApagar.txt´,´C:\MudarDeNome\PodeApagar.xxx´); end;
Emfim, não consegui renomear este Arquivo :cry: :cry: :cry: :cry:
3)
3-É só inverter .xxx p/ .cpl
Faz sentido deste que o Passo 2 seja suficiente...
4)
então acredito que seria um caminho muito difícil.
Pularemos esta parte...
5)
Para implementar a procedure:
Ok, Consegui Implementa-la :P :P :P :P , Mas não consegui implementar a segunda parte da dica :cry: :cry: :cry:
quando essa msg chega é pq a data/hora já foi alterada e aí vc pode resetá-la pela função SetSystemTime.
Como Poderemos então reseta-la :cry: :cry: :cry:
Bem No Geral acredito que dei um passo importante..
Obrigado pela participação.. :P :P :P :P :P :P :P
GOSTEI 0
Kapak
12/11/2004
1-Tente executar:
RunDLL32.EXE shell32.dll Control_RunDLL timedate.cpl
Veja se a janela de data/hora aparece.
2-Coloque a função RenameFile como parâmetro de Win32Check e veja se dá algum erro.
5-Na verdade SetSystemTime altera data/hora pela UTC e vc tem que saber o horário. É melhor utilizar SetLocalTime:
RunDLL32.EXE shell32.dll Control_RunDLL timedate.cpl
Veja se a janela de data/hora aparece.
2-Coloque a função RenameFile como parâmetro de Win32Check e veja se dá algum erro.
5-Na verdade SetSystemTime altera data/hora pela UTC e vc tem que saber o horário. É melhor utilizar SetLocalTime:
var st:SystemTime; begin GetLocalTime(st); // carrega a atual st // altere só o que interessa SetLocalTime(st); end;
GOSTEI 0
Marco Salles
12/11/2004
1-Tente executar:
RunDLL32.EXE shell32.dll Control_RunDLL timedate.cpl
Veja se a janela de data/hora aparece.
Executa sim, No Executar do Windows..[b:560e55e2d5] Mas Via Delphi nao[/b:560e55e2d5]...
Mas o que a gente ganha com isto :?: :?: :?: :?:
2-Coloque a função RenameFile como parâmetro de Win32Check e veja se dá algum erro.
Não compila :cry: :cry: :cry: . Da erro de:
[b:560e55e2d5][Error] Unit1.pas(29): Incompatible types: ´LongBool´ and ´String´[/b:560e55e2d5]
Fiz Assim:
Win32Check (´RenameFile(´C:\Mudar\PodeApagar.Dcu´,´C:\Mudar\PodeApagar.xxx´));
5-Na verdade SetSystemTime altera data/hora pela UTC e vc tem que saber o horário. É melhor utilizar SetLocalTime:Código:
var st:SystemTime;
begin
GetLocalTime(st); // carrega a atual st
// altere só o que interessa
SetLocalTime(st);
end;
Este Ultimo Procedimento , acredito ser uma extenção da procedure do tipo message WM_TimeChange no seu aplicativo;
Mas surge uma dúvida.. Aonde colocar este Ultimo Fragmento de Código :oops: :oops: :oops:
GOSTEI 0
Kapak
12/11/2004
Executa sim, No Executar do Windows.. Mas Via Delphi nao...
Mas o que a gente ganha com isto
É pelo Windows mesmo.Vc ganha a certeza de que possui o arquivo timedate.cpl; só falta vc encontrá-lo p/ poder renomeá-lo.
Não compila . Da erro de:
[Error] Unit1.pas(29): Incompatible types: ´LongBool´ and ´String´
Fiz Assim:
Código:
Win32Check (´RenameFile(´C:\Mudar\PodeApagar.Dcu´,´C:\Mudar\PodeApagar.xxx´));
Desse jeito deve dar erro mesmo. Vc tem que por o comando RenameFile e não a string:Win32Check (RenameFile(´C:\Mudar\PodeApagar.Dcu´,´C:\Mudar\PodeApagar.xxx´));
Este Ultimo Procedimento , acredito ser uma extenção da procedure do tipo message WM_TimeChange no seu aplicativo;
Mas surge uma dúvida.. Aonde colocar este Ultimo Fragmento de Código
Como eu disse, essa msg apenas informa que o usuário alterou a data/hora do sistema. O comando SetLocalTime serve p/ vc poder realterá-la.Essas são as ferramentas que conheço, agora depende de vc como utilizá-las.
Uma dica é vc salvar o datetime na incialização juntamente c/ o GetTickCount e, qdo o usuário alterar a data/hora, vc recalcula pela diferença dos dois GetTickCount.
GOSTEI 0
Marco Salles
12/11/2004
Vc ganha a certeza de que possui o arquivo timedate.cpl; só falta vc encontrá-lo p/ poder renomeá-lo.
Encontrei :P :P :P
[b:a0bc9baa78]Renomeei usando a Procedure RenomeFile....[/b:a0bc9baa78]
Acontece que , por incrivel que pareça , no meu windows , ao selecionar o Horário do Sistema Dando Um Click Na barra , e escolhendo a Opcção
Ajustar Data\Hora :arrow: o Relógio e Mostrada :cry: :cry: :cry: ...
E mais , Fui No Diretório em questão e alem da Pasta Renomeada , apareceu uma Outra Pasta Com a extensão Da Antiga :?: :?: :?: [b:a0bc9baa78]Xiiiii[/b:a0bc9baa78]
[b:a0bc9baa78]Agora alem da pasta DateTime.xxx Tem a Pasta DateTime.cpl[/b:a0bc9baa78] :?: :?: :?:
:idea: :idea: :idea: Talvez a saida seje nao so renomear , mas mudar esta pasta de diretorio
O Que voce acha :?: :?:
Fiz Assim:
Win32Check (´RenameFile(´C:\Mudar\PodeApagar.Dcu´,´C:\Mudar\PodeApagar.xxx´));
Desse jeito deve dar erro mesmo.
Claro :oops: :oops: . Foi Um descuido Meu
Mas mesmo com a sinta-se correta da um erro em tempo de execução
Dizendo :
[b:a0bc9baa78]Win32.Error.Code: 2.
O Sistema não pode encontrar o Arquivo Especificado[/b:a0bc9baa78] :cry: :cry: :cry:
Engraçado... Ja Verifiquei nome e tudo mais...
5)Essas são as ferramentas que conheço, agora depende de vc como utilizá-las.
Sem problemas... Conhecendo a Ferramenta a Utilização a gente senta o Pau
GOSTEI 0
Kapak
12/11/2004
Agora alem da pasta DateTime.xxx Tem a Pasta DateTime.cpl
Vc tem uma pasta ou um arquivo ?Não seria TimeDate.cpl ?
Tente renomeá-lo na mão, depois chame o painel de controle e veja se ele aparece lá.
Win32.Error.Code: 2.
O Sistema não pode encontrar o Arquivo Especificado
Engraçado... Ja Verifiquei nome e tudo mais...
Se ele deu essa msg, então ele não renomeou o arquivo.Verifique novamente ou tente c/ outro arquivo.
GOSTEI 0
Marco Salles
12/11/2004
Citação:
Sim, e TimeDate
Ela parece que tem vida própia... Ela surge novamente Quando eu Clico Na [b:7a97d4f218]Barra de Ferramentas [/b:7a97d4f218]e Escolho [b:7a97d4f218] Ajustar Data/Hora[/b:7a97d4f218]
Citação:
De Fato , Usando o Win Não Esta Renomeando
Ja verifiquei e não encontra.
[b:7a97d4f218]Mas veja, este último passo é um detalhe[/b:7a97d4f218]... Eu Estou Conseguindo Renomear Usando o Procedure [b:7a97d4f218]RenameFile()[/b:7a97d4f218]
So que o Arquivo com a extensão TimeDate.cpl parece que tem Vida Própria :oops: :oops: :oops:
Agora alem da pasta DateTime.xxx Tem a Pasta DateTime.cpl
Vc tem uma pasta ou um arquivo ?
Não seria TimeDate.cpl ?
Sim, e TimeDate
Tente renomeá-lo na mão, depois chame o painel de controle e veja se ele aparece lá.
Ela parece que tem vida própia... Ela surge novamente Quando eu Clico Na [b:7a97d4f218]Barra de Ferramentas [/b:7a97d4f218]e Escolho [b:7a97d4f218] Ajustar Data/Hora[/b:7a97d4f218]
Citação:
Win32.Error.Code: 2.
O Sistema não pode encontrar o Arquivo Especificado
Engraçado... Ja Verifiquei nome e tudo mais...
Se ele deu essa msg, então ele não renomeou o arquivo.
De Fato , Usando o Win Não Esta Renomeando
Verifique novamente ou tente c/ outro arquivo.
Ja verifiquei e não encontra.
[b:7a97d4f218]Mas veja, este último passo é um detalhe[/b:7a97d4f218]... Eu Estou Conseguindo Renomear Usando o Procedure [b:7a97d4f218]RenameFile()[/b:7a97d4f218]
So que o Arquivo com a extensão TimeDate.cpl parece que tem Vida Própria :oops: :oops: :oops:
GOSTEI 0
Kapak
12/11/2004
Bom, sei que o RenameFile funciona; acho que deve ter alguma outra coisa que vc não está vendo. Utilize MoveFile que é a função direta da api.
Quanto ao .cpl surgir novamente, verifique se ele existe em outros lugares como por ex: c:\...\system32\dllcache. Se vc encontrar, renomeie-os todos.
Quanto ao .cpl surgir novamente, verifique se ele existe em outros lugares como por ex: c:\...\system32\dllcache. Se vc encontrar, renomeie-os todos.
GOSTEI 0
Marco Salles
12/11/2004
Bom, sei que o RenameFile funciona; acho que deve ter alguma outra coisa que vc não está vendo. Utilize MoveFile que é a função direta da api.
Quanto ao .cpl surgir novamente, verifique se ele existe em outros lugares como por ex: c:\...\system32\dllcache. Se vc encontrar, renomeie-os todos.
Olha , ja pelejei ate renomear e excluir este arquivo.. Ate mesmo o Rundll32.exe , shell32.dll , TimeDate.Cpl etc... e todos Ressurgem.. Dando a sensação que são auto criados.. Uma espécie de segurança do Windows , Para Preservar algums Arquivos que possam ser Essenciais para o Sistema
Quanto ao .cpl surgir novamente, verifique se ele existe em outros lugares
[b:56cf0ba15d]No meo Caso , é Não[/b:56cf0ba15d]
Mas valeu o conceito e sua ardua tentativa.. Valeu mesmo Pelas dicas e soluções Apresentadas :P :P :P :P .. Obrigado
E Fica este Tópico ainda em aberto.. Aqui No Forum , Para Futuras invistidas :!: :!: :!: Eu não sou o Primeiro e nen serei o Último a ter Tal Dúvida . Um Dia Vai :P :P :P :P :P
GOSTEI 0
Kapak
12/11/2004
Olha , ja pelejei ate renomear e excluir este arquivo.. Ate mesmo o Rundll32.exe , shell32.dll , TimeDate.Cpl etc... e todos Ressurgem.. Dando a sensação que são auto criados.. Uma espécie de segurança do Windows , Para Preservar algums Arquivos que possam ser Essenciais para o Sistema
Hei, vá com calma; vc não pode renomear o Rundll32 pq ele tem várias funções; mostrar a tela de data/hora é apenas uma delas. Assim como a shell32.dll, pq qdo vc coloca ShellAPI no uses da sua aplicação, ela carrega as funções dessa api.Quanto ao timedate.cpl, no meu caso só existe um mesmo. Mas tomei como base o cmd.exe; se renomeá-lo ele ressurge novamente; aí pesquisei onde mais poderia ter esse executável e encontrei-o nas pastas: dllcache e ServicePackFiles; fiz todas as renomeações e ele não ressurgiu mais.
A pasta dllcache é read-only e hidden; pode ser tb que vc esteja com a opção de mostrar pastas hidden desabilitada.
GOSTEI 0
Marco Salles
12/11/2004
Hei, vá com calma; vc não pode renomear o Rundll32 pq ele tem várias funções; mostrar a tela de data/hora é apenas uma delas.
Isto é so testes... Eu Não ia deixar assim :wink:
Mas tomei como base o cmd.exe
No meu computador recebo a informação que :
[color=red:03273781ec]´A Pesquisa foi Concluida , Não Háresultados a serem exibidos´[/color:03273781ec]
encontrei-o nas pastas: dllcache e ServicePackFiles;
O Mesmo Resultado quando Pesquiso Por : dllcache e ServicePackFiles
recebo a mensagem que:
[color=red:03273781ec]´A Pesquisa foi Concluida , Não Háresultados a serem exibidos´[/color:03273781ec]
To com vontade criar um programinha que e carregado junto com o Windows e so Fecha como o Windows... Coloca-lo na barra de tarefas e
fazer com que ele controle a Time/hora do sitema..Impedindo que ela seja alterada e permitindo que a mesma so seje alterada atraves de uma senha...
GOSTEI 0
Kapak
12/11/2004
A pasta dllcache é read-only e hidden; pode ser tb que vc esteja com a opção de mostrar pastas hidden desabilitada.
Se estiver desabilitada, a pesquisa não abrirá essas pastas.´ServicePackFiles´ pq no meu caso é o Win2000 em inglês, o seu é Português e deve estar c/ outro nome.
GOSTEI 0
Marco Salles
12/11/2004
Citação:
A pasta dllcache é read-only e hidden; pode ser tb que vc esteja com a opção de mostrar pastas hidden desabilitada.
Se estiver desabilitada, a pesquisa não abrirá essas pastas.
E Como eu faço para supostamnete Habilitar Mostrar Pastas hidden :?: :?:
GOSTEI 0
Kapak
12/11/2004
Bom, no Win2000 é só abrir o explorer e ir em Tools/Folder Options/View
GOSTEI 0
Kapak
12/11/2004
No painel de controle tb tem essa opção.
GOSTEI 0