Impedir execução de qualquer programa
Pessoal, como faço para monitorar a abertura de programas pelo Delphi, usando o nome das janelas? Por exemplo, quero desenvolver um soft que fique executando em segundo plano, que bloqueie a abertura do MSN, do Media Player e do Winamp, e também a abertura de determinados sites, como sites pornôs e de bate-papo. Obrigado
Bruno Gomes
Curtidas 0
Melhor post
Lucaniasalvatore
11/09/2005
Boa noite, Bruno.
O projeto que ganhou o topuploader de agosto é o que vc tá procurando,veja:
[url]https://www.devmedia.com.br/visualizacomponente.aspx?comp=239&site=3[/url]
Boa programação,
Lucania Salvatore
O projeto que ganhou o topuploader de agosto é o que vc tá procurando,veja:
[url]https://www.devmedia.com.br/visualizacomponente.aspx?comp=239&site=3[/url]
Boa programação,
Lucania Salvatore
GOSTEI 1
Mais Respostas
Bruno Gomes
11/09/2005
Olá, Lucania. Agradeço a sua ajuda, mas o projeto que você citou não é necessariamente o que estou precisando. O projeto bloqueia o executável se ele estiver em determinado diretório. Se o usuário instalar o programa em outro diretório conseguirá executar o programa. E ele também não bloqueia certas páginas da internet.
Preciso de um código ou componente que bloqueie a execução de programa pelo nome de sua janela (form) e que também bloqueie determinadas páginas da web.
Obrigado
Preciso de um código ou componente que bloqueie a execução de programa pelo nome de sua janela (form) e que também bloqueie determinadas páginas da web.
Obrigado
GOSTEI 0
Xanatos
11/09/2005
Bom brunorgomes, atraves do WMI vc pode saber o momento em que um programa é criado e saber o nome do exe... ´calc.exe, winword.exe´ e assim vc poderia criar uma lista de executaveis proibidos ... como ´cartao.exe,msnmsg.exe´, e etc... e no caso do iexplore.exe vc poderia criar uma rotina para acessar o nome dos links e finalizar eles atraves do wmi tb...
GOSTEI 0
Bruno Gomes
11/09/2005
bom, pessoal, é exatamente isso que eu preciso fazer, mas só quero saber como eu faria isso. Eu tenho a rotina que captura o nome das janelas, mas eu quero saber como faço para monitorar a abertura de programas, para saber o momento de ler o nome das janelas.
Em relação à internet, qual a rotina para capturar o link visitado? É disso que estou precisando...
Obrigado
Em relação à internet, qual a rotina para capturar o link visitado? É disso que estou precisando...
Obrigado
GOSTEI 0
Xanatos
11/09/2005
Bom..eu tb to tentando fazer um programa assim, eu fiz o seguinte:
1 - Aplicativo Servidor
1 - Cliente que me fornece inf de consumo(mem usada, nro de processos, programas instalados, etc...)
1 - Cliente só para me mandar os processos que sao executados (o teu caso)
----------
Ai no meu servidor eu tenho um BD e nele uma tabela de Processos Proibidos e qdo o Cliente executa um arquivo Ex: calc.exe ele manda para o servidor e o servidor decide o que fazer ... podendo avisar o cliente q nao pode ou simplesmente finalizar ...
Atraves do WMI vc tem o handle do processo ...e atraves dele vc le o nome da janela...qto aos links ainda nao mechi com isso mas vou ver se descubro como!!!!
1 - Aplicativo Servidor
1 - Cliente que me fornece inf de consumo(mem usada, nro de processos, programas instalados, etc...)
1 - Cliente só para me mandar os processos que sao executados (o teu caso)
----------
Ai no meu servidor eu tenho um BD e nele uma tabela de Processos Proibidos e qdo o Cliente executa um arquivo Ex: calc.exe ele manda para o servidor e o servidor decide o que fazer ... podendo avisar o cliente q nao pode ou simplesmente finalizar ...
Atraves do WMI vc tem o handle do processo ...e atraves dele vc le o nome da janela...qto aos links ainda nao mechi com isso mas vou ver se descubro como!!!!
GOSTEI 0
Lucaniasalvatore
11/09/2005
Boa tarde, Bruno.
Achei um programa pronto, na medida da sua necessidade. Vc cadastra os programas que deseja bloquear a execução. Ele fica residente (na bandeja). Feito em Delphi 6.
[b:9d491a5029]Program Killer 3.0.1[/b:9d491a5029]
[url]http://sourceforge.net/projects/progkill/[/url]
É open-source.
Boa programação,
Lucania Salvatore
Achei um programa pronto, na medida da sua necessidade. Vc cadastra os programas que deseja bloquear a execução. Ele fica residente (na bandeja). Feito em Delphi 6.
[b:9d491a5029]Program Killer 3.0.1[/b:9d491a5029]
[url]http://sourceforge.net/projects/progkill/[/url]
É open-source.
Boa programação,
Lucania Salvatore
GOSTEI 0
Bruno Gomes
11/09/2005
Pessoal, agradeço bastante a ajuda. Meu problema está 50¬ resolvido. Agora só preciso de uma rotina para bloquear determinados site da internet, como sites pornôs e de bate-papo.
Mais um vez, muito obrigado!
Mais um vez, muito obrigado!
GOSTEI 0
Michael
11/09/2005
Olá colega!
A solução para seu problema se chama [b:97c121aeed]API Hooking[/b:97c121aeed]. Com esta técnica, basta vc ´hookar´ as API´s do Windows [b:97c121aeed]CreateProcessA/W[/b:97c121aeed] e vc conseguirá saber qdo qualquer processo for executado na sua máquina, de qualquer lugar e por quem quer que seja. Vc pode então determinar o q fazer: exibir uma mensagem ao usuário, pedir uma senha para a autorizar a execução, etc.
Da mesma forma para verificar quais sites da Web o usuário está acessando. Não me lembro a API de cabeça para isso, mas ela existe.
Para usar esta técnica, a primeira coisa é obter uma biblioteca de API Hooking. Aqui vc encontra uma, free para uso não comercial, feito pelo meu amigo [b:97c121aeed]Nildo[/b:97c121aeed]: www.projetobms.net .
Escrevi um artigo sobre o tema para a revista ClubeDelphi, que deve sair na edição de novembro.
[]´s
A solução para seu problema se chama [b:97c121aeed]API Hooking[/b:97c121aeed]. Com esta técnica, basta vc ´hookar´ as API´s do Windows [b:97c121aeed]CreateProcessA/W[/b:97c121aeed] e vc conseguirá saber qdo qualquer processo for executado na sua máquina, de qualquer lugar e por quem quer que seja. Vc pode então determinar o q fazer: exibir uma mensagem ao usuário, pedir uma senha para a autorizar a execução, etc.
Da mesma forma para verificar quais sites da Web o usuário está acessando. Não me lembro a API de cabeça para isso, mas ela existe.
Para usar esta técnica, a primeira coisa é obter uma biblioteca de API Hooking. Aqui vc encontra uma, free para uso não comercial, feito pelo meu amigo [b:97c121aeed]Nildo[/b:97c121aeed]: www.projetobms.net .
Escrevi um artigo sobre o tema para a revista ClubeDelphi, que deve sair na edição de novembro.
[]´s
GOSTEI 0
Xanatos
11/09/2005
Testei e funcionou aqui...
uses ddeman; procedure GetCurrentURL(out URL, Title: string); var DDEClient : TDDEClientConv; p, q: PChar; i: Integer; begin DDEClient := TDDEClientConv.Create(nil); try with DDEClient do if SetLink(´IExplore´, ´WWW_GetWindowInfo´) or SetLink(´Netscape´, ´WWW_GetWindowInfo´) or SetLink(´Mosaic´, ´WWW_GetWindowInfo´) or SetLink(´Netscp6´, ´WWW_GetWindowInfo´) or SetLink(´Mozilla´, ´WWW_GetWindowInfo´) or SetLink(´Firefox´, ´WWW_GetWindowInfo´) then p := RequestData(´0xFFFFFFFF´) else raise Exception.Create(´Could not establish browser DDE link´); if Assigned(p) then try q := p; Assert(q^ = ´"´); SetLength(URL, StrLen(q)); Inc(q); i := 0; while q^ <> ´"´ do begin if (q^ = ´\´) and (q[1] = ´"´) then Inc(q); Inc(i); URL[i] := q^; Inc(q); end; SetLength(URL, i); SetLength(Title, StrLen(q)); i := 0; Inc(q, 3); while q^ <> ´"´ do begin if (q^ = ´\´) and (q[1] = ´"´) then Inc(q); Inc(i); Title[i] := q^; Inc(q); end; SetLength(Title, i); finally StrDispose(p); end else raise Exception.Create(´Could not fetch browser data´); finally DDEClient.Free; end; end;
GOSTEI 0