Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Hewitt Novato

Registrado: Quarta-Feira, 4 de Mai de 2005 Mensagens: 71
|
Enviada: Qui Out 14, 2010 5:57 pm Assunto: Verificar programa aberto - MD5! |
|
|
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 |
|
 |
cyberdisk Colaborador

Registrado: Domingo, 4 de Julho de 2010 Mensagens: 2391 Localização: São José dos Campos - SP
|
Enviada: Qui Out 14, 2010 11:42 pm Assunto: |
|
|
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 |
|
 |
Hewitt Novato

Registrado: Quarta-Feira, 4 de Mai de 2005 Mensagens: 71
|
Enviada: Sex Out 15, 2010 12:03 am Assunto: |
|
|
Sim, usei o nome (texte.exe) para simplificar. O programa já tem o nome padrão. =/ |
|
Voltar ao Topo |
|
 |
gilsonnrodrigues Moderador

Registrado: Quinta-Feira, 14 de Abril de 2005 Mensagens: 9009 Localização: Governador Valadares-MG
|
Enviada: Sex Out 15, 2010 9:00 am Assunto: |
|
|
só vc olhar o path dele |
|
Voltar ao Topo |
|
 |
NalDinHuU Colaborador


Registrado: Segunda-Feira, 26 de Julho de 2010 Mensagens: 1294 Localização: João Pessoa/PB
|
Enviada: Sex Out 15, 2010 9:20 am Assunto: |
|
|
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 |
|
 |
BrunoMoreyra Colaborador

Registrado: Quinta-Feira, 26 de Novembro de 2009 Mensagens: 1398 Localização: Goiânia - GO / Brasília - DF
|
Enviada: Sex Out 15, 2010 9:25 am Assunto: |
|
|
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 |
|
 |
Hewitt Novato

Registrado: Quarta-Feira, 4 de Mai de 2005 Mensagens: 71
|
Enviada: Sex Out 15, 2010 10:15 am Assunto: |
|
|
Mas a cada execução, o PATH não muda? |
|
Voltar ao Topo |
|
 |
BrunoMoreyra Colaborador

Registrado: Quinta-Feira, 26 de Novembro de 2009 Mensagens: 1398 Localização: Goiânia - GO / Brasília - DF
|
Enviada: Sex Out 15, 2010 10:18 am Assunto: |
|
|
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 |
|
 |
Hewitt Novato

Registrado: Quarta-Feira, 4 de Mai de 2005 Mensagens: 71
|
Enviada: Sex Out 15, 2010 10:20 am Assunto: |
|
|
Humm, acho que isso irá funcionar. Alguém tem algum exemplo, ou site onde posso achar sobre isso? |
|
Voltar ao Topo |
|
 |
Hewitt Novato

Registrado: Quarta-Feira, 4 de Mai de 2005 Mensagens: 71
|
Enviada: Sáb Out 16, 2010 10:34 pm Assunto: |
|
|
Ninguém?  |
|
Voltar ao Topo |
|
 |
NalDinHuU Colaborador


Registrado: Segunda-Feira, 26 de Julho de 2010 Mensagens: 1294 Localização: João Pessoa/PB
|
Enviada: Seg Out 18, 2010 8:41 am Assunto: |
|
|
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 |
|
 |
|