Fórum Bloquear Data do Sistema #258186
12/11/2004
0
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
Curtir tópico
+ 0Posts
12/11/2004
Dopi
http://delphiforum.icft.com.br/forum/viewtopic.php?t=52249&highlight=ecf+hora
Gostei + 0
16/03/2005
Marco Salles
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
16/03/2005
Marco Salles
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]
Gostei + 0
16/03/2005
Dopi
Se não me engano o tópico era esse aqui..
http://forum.clubedelphi.net/viewtopic.php?t=52249&highlight=ecf+hora
Gostei + 0
16/03/2005
Marco Salles
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:
Gostei + 0
16/03/2005
Marco Salles
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
16/03/2005
Kapak
ShowWindow(FindWindowEx(FindWindowEx(FindWindow(´Shell_TrayWnd´, nil), 0, ´TrayNotifyWnd´, nil), 0, ´TrayClockWClass´, nil), SW_Hide);
Gostei + 0
16/03/2005
Marco Salles
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
16/03/2005
Kapak
Gostei + 0
16/03/2005
Ifdo_ltda
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
17/03/2005
Marco Salles
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
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
17/03/2005
Kapak
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
17/03/2005
Marco Salles
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
17/03/2005
Kapak
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
17/03/2005
Marco Salles
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:
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)
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)