GARANTIR DESCONTO

Fórum Bloquear Data do Sistema #258186

12/11/2004

0

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 =)


Vivipeder

Vivipeder

Responder

Posts

17/03/2005

Kapak

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:
var st:SystemTime;
begin
  GetLocalTime(st); // carrega a atual st
// altere só o que interessa
  SetLocalTime(st);
end;



Responder

Gostei + 0

18/03/2005

Marco Salles

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:


Responder

Gostei + 0

18/03/2005

Kapak

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.


Responder

Gostei + 0

18/03/2005

Marco Salles

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


Responder

Gostei + 0

18/03/2005

Kapak

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.


Responder

Gostei + 0

18/03/2005

Marco Salles

Citação:
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:


Responder

Gostei + 0

18/03/2005

Kapak

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.


Responder

Gostei + 0

19/03/2005

Marco Salles

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


Responder

Gostei + 0

19/03/2005

Kapak

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.


Responder

Gostei + 0

19/03/2005

Marco Salles

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...


Responder

Gostei + 0

21/03/2005

Kapak

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.


Responder

Gostei + 0

21/03/2005

Marco Salles

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 :?: :?:


Responder

Gostei + 0

21/03/2005

Kapak

Bom, no Win2000 é só abrir o explorer e ir em Tools/Folder Options/View


Responder

Gostei + 0

21/03/2005

Kapak

No painel de controle tb tem essa opção.


Responder

Gostei + 0

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

Aceitar