ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Verificar programa aberto - MD5!

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Hewitt
Novato
Novato


Registrado: Quarta-Feira, 4 de Mai de 2005
Mensagens: 71

MensagemEnviada: Qui Out 14, 2010 5:57 pm    Assunto: Verificar programa aberto - MD5! Responder com Citação

Galera, há alguma maneira de verificar se o aplicativo que está aberto, é o que você quer fechar?

Por exemplo, tenho 2 aplicativos com o mesmo nome (teste.exe), mas com MD5 diferentes. Com meu sistema aberto, eu não quero deixar o programa (texte.exe com o MD5 escrito no Label1) abrir, sem antes clicar em um botão, mas o outro, com o MD5 diferente, poderia abrir sem problemas.

Há alguma possibilidade de fazer isso, usando qualquer tipo de encriptação?

Pois fiz usando o Handle, e não dá para abrir nenhum dos 2 (texte.exe).


Desde já agradeço!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
cyberdisk
Colaborador
Colaborador


Registrado: Domingo, 4 de Julho de 2010
Mensagens: 2391
Localização: São José dos Campos - SP

MensagemEnviada: Qui Out 14, 2010 11:42 pm    Assunto: Responder com Citação

Citação:
Pois fiz usando o Handle, e não dá para abrir nenhum dos 2 (texte.exe).


voce pode usar nomes diferentes, ai não teria esse problema
_________________
O conhecimento abre muitas portas
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
Hewitt
Novato
Novato


Registrado: Quarta-Feira, 4 de Mai de 2005
Mensagens: 71

MensagemEnviada: Sex Out 15, 2010 12:03 am    Assunto: Responder com Citação

Sim, usei o nome (texte.exe) para simplificar. O programa já tem o nome padrão. =/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Sex Out 15, 2010 9:00 am    Assunto: Responder com Citação

só vc olhar o path dele
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
NalDinHuU
Colaborador
Colaborador


Registrado: Segunda-Feira, 26 de Julho de 2010
Mensagens: 1294
Localização: João Pessoa/PB

MensagemEnviada: Sex Out 15, 2010 9:20 am    Assunto: Responder com Citação

vou te dar uma dica:

Você terá que monitorar os processos em execução do windows e verificar o path de cada um pra ver se o path de algum deles é igual a do programa em execução.
_________________
Try
Topic.Resolve;
Finally
Topic.Caption := Topic.Caption + '[RESOLVIDO]';
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
BrunoMoreyra
Colaborador
Colaborador


Registrado: Quinta-Feira, 26 de Novembro de 2009
Mensagens: 1398
Localização: Goiânia - GO / Brasília - DF

MensagemEnviada: Sex Out 15, 2010 9:25 am    Assunto: Responder com Citação

Bom dia,

é mais ou menos nesse rumo, ou verificar o Path, ou sai calculando o MD5 de cada programa e sair comparando.


NalDinHuU escreveu:
vou te dar uma dica:

Você terá que monitorar os processos em execução do windows e verificar o path de cada um pra ver se o path de algum deles é igual a do programa em execução.

_________________
Atencisamente,

Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Hewitt
Novato
Novato


Registrado: Quarta-Feira, 4 de Mai de 2005
Mensagens: 71

MensagemEnviada: Sex Out 15, 2010 10:15 am    Assunto: Responder com Citação

Mas a cada execução, o PATH não muda?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
BrunoMoreyra
Colaborador
Colaborador


Registrado: Quinta-Feira, 26 de Novembro de 2009
Mensagens: 1398
Localização: Goiânia - GO / Brasília - DF

MensagemEnviada: Sex Out 15, 2010 10:18 am    Assunto: Responder com Citação

Bom dia,

não muda, não.
Path é o local que o arquivo está, a não ser que o usuário troque de pasta o arquivo.
Mas ele está querendo saber se o programa está sendo aberto duas ou mais vezes, com isso o sistema operacional não deixará trocar o diretório porque ele está em execução.

Hewitt escreveu:
Mas a cada execução, o PATH não muda?

_________________
Atencisamente,

Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Hewitt
Novato
Novato


Registrado: Quarta-Feira, 4 de Mai de 2005
Mensagens: 71

MensagemEnviada: Sex Out 15, 2010 10:20 am    Assunto: Responder com Citação

Humm, acho que isso irá funcionar. Alguém tem algum exemplo, ou site onde posso achar sobre isso?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Hewitt
Novato
Novato


Registrado: Quarta-Feira, 4 de Mai de 2005
Mensagens: 71

MensagemEnviada: Sáb Out 16, 2010 10:34 pm    Assunto: Responder com Citação

Ninguém? Sad
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
NalDinHuU
Colaborador
Colaborador


Registrado: Segunda-Feira, 26 de Julho de 2010
Mensagens: 1294
Localização: João Pessoa/PB

MensagemEnviada: Seg Out 18, 2010 8:41 am    Assunto: Responder com Citação

Amigo Veja se Esse Código Lhe Ajuda...
Basicamente ele Pega os Processos em Execução e os Adiciona em um Listview.
Conteúdo dos Forms = 2 ListView & 1 Button
Código:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, Tlhelp32, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListView1: TListView;
    ListView2: TListView;
    procedure Button1Click(Sender: TObject);
    procedure ListView1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Snapshot: THandle;
  ProcessEntry32: TProcessEntry32;
  ModuleSnap : THandle;
  ModuleEntry32 : TModuleEntry32;
  ProcessId : Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ListView1.Clear;
Snapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (Snapshot = Cardinal(-1)) then
exit;
ProcessEntry32.dwSize := SizeOf(TProcessEntry32);
if (Process32First(Snapshot, ProcessEntry32)) then
repeat
with ListView1.Items.Add do begin
Caption := IntToStr(ProcessEntry32.th32ProcessID);
SubItems.Add(IntToStr(ProcessEntry32.th32ParentProcessID));
SubItems.Add(ProcessEntry32.szExeFile);
end;
until not Process32Next(Snapshot, ProcessEntry32);
CloseHandle (Snapshot);
end;

procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
ListView2.Clear;
ProcessId := StrToInt(Item.Caption);
ModuleSnap := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessId);
if (ModuleSnap = Cardinal(-1)) then
exit;
ModuleEntry32.dwSize := SizeOf(TModuleEntry32);
if (Module32First(ModuleSnap, ModuleEntry32)) then
repeat
with ListView2.Items.Add do begin
Caption := String(ModuleEntry32.szModule);
SubItems.Add(String(ModuleEntry32.szExePath));
end;
until not Module32Next(ModuleSnap, ModuleEntry32);
CloseHandle(ModuleSnap);
end;

end.

_________________
Try
Topic.Resolve;
Finally
Topic.Caption := Topic.Caption + '[RESOLVIDO]';
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB