Ajuda Delphi URGENTE!
Seguinte amigos precisso fazer uma ferramenta no delṕhi e esta meio complicado aqui bom vamos la..
Precisso de um programa que fique rodando no sistema ele vai ter a função de monitora um diretorio ex: c:\Vhost e quando alguem envia um arquivo pra esse diretorio ele envia por email o nome do arquivo que foi colocado nesse diretorio ex: alguem coloco o arquivo passwd.txt no diretorio c:\Vhost então ai o programa entra em acão e manda o email para o admin por exemplo contendo a hora do envio o nome do arquivo só isso, mais não sei por onde começa agradeço a todos.
Quem estiver disposto a ajudar entre em contato.
MSN: Killer-root@hotmail.com
Precisso de um programa que fique rodando no sistema ele vai ter a função de monitora um diretorio ex: c:\Vhost e quando alguem envia um arquivo pra esse diretorio ele envia por email o nome do arquivo que foi colocado nesse diretorio ex: alguem coloco o arquivo passwd.txt no diretorio c:\Vhost então ai o programa entra em acão e manda o email para o admin por exemplo contendo a hora do envio o nome do arquivo só isso, mais não sei por onde começa agradeço a todos.
Quem estiver disposto a ajudar entre em contato.
MSN: Killer-root@hotmail.com
B470-killer
Curtidas 0
Respostas
Woinch
13/04/2009
- Primeiro você precisará de um componente TTimer. Defina a ele um intervalo e ao executar o programa mude sua propriedade Active para True.
- No evento OnTimer desse componente, você precisará montar uma função que varre esse diretório. Para isso utilize o objeto TSearchRec (dúvidas referente a utilização, basta procurar aqui mesmo no fórum).
- Para extrair a data de criação do arquivo basta utilizar a seguinte função:
- Para enviar e-mails via Delphi, utilize os componentes TIdMessage e TIdSMTP do Indy (para um exemplo de utilização, basta fazer uma busca aqui no fórum também).
PS: Não estou entrando em contato com você via MSN, pois acho que sua dúvida um dia pode ser a mesma dúvida de outra pessoa. Portanto qualquer dúvida favor responder aqui mesmo no tópico.
Espero ter ajudado.
- No evento OnTimer desse componente, você precisará montar uma função que varre esse diretório. Para isso utilize o objeto TSearchRec (dúvidas referente a utilização, basta procurar aqui mesmo no fórum).
- Para extrair a data de criação do arquivo basta utilizar a seguinte função:
function GetFileDate(Arquivo: String): String; var FHandle: integer; begin FHandle := FileOpen(Arquivo, 0); try Result := DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle))); finally FileClose(FHandle); end; end;
- Para enviar e-mails via Delphi, utilize os componentes TIdMessage e TIdSMTP do Indy (para um exemplo de utilização, basta fazer uma busca aqui no fórum também).
PS: Não estou entrando em contato com você via MSN, pois acho que sua dúvida um dia pode ser a mesma dúvida de outra pessoa. Portanto qualquer dúvida favor responder aqui mesmo no tópico.
Espero ter ajudado.
GOSTEI 0
B470-killer
13/04/2009
Opa então precisso pegar esse esquema de como fazer essa varredura no diretorio so isso o resto eu ja mentei. so to me matutando com isso. de quando algum arquivo for pro diretorio ele pega o nome do arquivo que foi enviado pro diretorio e manda por email.
GOSTEI 0
Woinch
13/04/2009
Utilizando a pesquisa do fórum com as palavras-chaves que falei acima você conseguirá com certeza.
Qualquer dúvida favor retornar.
PS: Assim que desenvolver uma solução poste ai pro pessoal ver como ficou! ;)
Qualquer dúvida favor retornar.
PS: Assim que desenvolver uma solução poste ai pro pessoal ver como ficou! ;)
GOSTEI 0
Woinch
13/04/2009
Existem diversas maneiras para fazer a verificação mencionada.
Você pode remover e/ou mover para outra pasta o arquivo após o envio do e-mail, pode também renomear o arquivo e colocar algum simbolo que indique que já foi enviado o e-mail. Exemplo: Colocar um OK_ no começo ou também gravar em um outro arquivo (fora desse diretório) todos os arquivos já enviados e na varredura, verificar se o arquivo está ou não nesse outro arquivo para dai enviar.
Você pode remover e/ou mover para outra pasta o arquivo após o envio do e-mail, pode também renomear o arquivo e colocar algum simbolo que indique que já foi enviado o e-mail. Exemplo: Colocar um OK_ no começo ou também gravar em um outro arquivo (fora desse diretório) todos os arquivos já enviados e na varredura, verificar se o arquivo está ou não nesse outro arquivo para dai enviar.
GOSTEI 0
Wdrocha
13/04/2009
Vc tbm pod usar uma hook procedure. Outro dia eu li sobre uma hook que fica monitorando as pastas do sistema, por exemplo, saber qdo uma pasta foi copiada, recortada, qdo algum arquivo foi movido ou copiado para determinada pasta.
Tenho certeza que tbm seria uma forma bastante prática de se fazer isso.
Fica aew a dica d Hook Procedure.
flw
Tenho certeza que tbm seria uma forma bastante prática de se fazer isso.
Fica aew a dica d Hook Procedure.
flw
GOSTEI 0
Wdrocha
13/04/2009
Aq tem algo a respeito do q acabei d falar...
tem até um componente e um exemplo....
[url]http://delphi.about.com/od/kbwinshell/l/aa030403a.htm[/url]
espero ter ajudado....
flw
tem até um componente e um exemplo....
[url]http://delphi.about.com/od/kbwinshell/l/aa030403a.htm[/url]
espero ter ajudado....
flw
GOSTEI 0