Fórum Processos X Administrador #324259

26/06/2006

0

Existe algum meio de ´matar´ um processo sem que usuário tenha acessos de administrador via Delphi ?

Hoje uso:
function PararPrograma(Executavel: WideString): Integer; Export; StdCall;
const PROCESS_TERMINATE=$0001;
var ContinueLoop: BOOL;
    FSnapshotHandle: THandle;
    FProcessEntry32: TProcessEntry32;
begin
 result := 0;

 FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
 ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);

 while integer(ContinueLoop) <> 0 do
 begin
   if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(Executavel))
      or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(Executavel))) then
     Result := Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0));

   ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
 end;

 CloseHandle(FSnapshotHandle);
end;


Abs e Bons Códigos :wink:


Paulocesar1301

Paulocesar1301

Responder

Posts

27/06/2006

Nildo

Não existe um meio eficiente se seu usuiário não tiver direitos suficientes. Talves um SendMessage com o WM_CLOSE pro Handle da aplicação seria acessível por um usuário comum? Creio eu que sim. Mas dessa maneira apenas fala pra aplicação Fechar. Se ela não quiser fechar, ai num tem jeito hehe


Responder

Gostei + 0

27/06/2006

Paulocesar1301

Qual é meu grande problema aqui... estão querendo restringir ainda mais os acessos dos usuários e fazem isso via scripts windows, porém sempre tem uns carinhas que sacam um pouco que conseguem, por exemplo, instalar e rodar um MSN Messenger... o que fiz foi um sistema (TService) que, além de outros recursos de controle em segundo plano, ´detona´ se achar rodando na máquina o MSN, Yahoo, Google Talk, e por aí vai... só que fui testar hoje em um equipamento com certas travas e com usuário apenas com direitos de convidado e simplesmente não funcionou !!!!! Pensei que ouvesse algum código... sei lá ´em baixo nível´ que conseguisse isso por baixo dos panos do rWindows.
Vou tentas via SendMessage e ver se roda !!!

Vlw camarada !!!


Responder

Gostei + 0

27/06/2006

Paulocesar1301

Bom Povo,
Aos que se interessaram... com Send não rodou, mas com Post sim e rodou mesmo ...

  PostMessage(FindWindow(nil, ´MSN Messenger´), WM_CLOSE, 0, 0);
  PostMessage(FindWindow(nil, ´MSN Messenger´), WM_QUIT, 0, 0);


O único problema é que preciso saber a classe ou o nome da janela, mas como são programas padrão... é fácil de resolver...
Tive que usar o [b:dd3dda74d7]WM_CLOSE[/b:dd3dda74d7] e o [b:dd3dda74d7]WM_QUIT[/b:dd3dda74d7] pq o MSN quando fechasó vai para o tray... adoto como padrão para não ter maiores complicações com outras aplicações do tipo...

Nildo,
Mais uma vez obrigado !! Nem tinha pensado no Send e PostMessage !!


Responder

Gostei + 0

27/06/2006

Paulocesar1301

Bom Povo,
Aos que se interessaram... com Send não rodou, mas com Post sim e rodou mesmo ...

  PostMessage(FindWindow(nil, ´MSN Messenger´), WM_CLOSE, 0, 0);
  PostMessage(FindWindow(nil, ´MSN Messenger´), WM_QUIT, 0, 0);


O único problema é que preciso saber a classe ou o nome da janela, mas como são programas padrão... é fácil de resolver...
Tive que usar o [b:20beac5f2d]WM_CLOSE[/b:20beac5f2d] e o [b:20beac5f2d]WM_QUIT[/b:20beac5f2d] pq o MSN quando fechasó vai para o tray... adoto como padrão para não ter maiores complicações com outras aplicações do tipo...

Nildo,
Mais uma vez obrigado !! Nem tinha pensado no Send e PostMessage !!


Responder

Gostei + 0

27/06/2006

Nildo

Bom Povo, Aos que se interessaram... com Send não rodou, mas com Post sim e rodou mesmo ...
  PostMessage(FindWindow(nil, ´MSN Messenger´), WM_CLOSE, 0, 0);
  PostMessage(FindWindow(nil, ´MSN Messenger´), WM_QUIT, 0, 0);
O único problema é que preciso saber a classe ou o nome da janela, mas como são programas padrão... é fácil de resolver... Tive que usar o [b:e1b732e64d]WM_CLOSE[/b:e1b732e64d] e o [b:e1b732e64d]WM_QUIT[/b:e1b732e64d] pq o MSN quando fechasó vai para o tray... adoto como padrão para não ter maiores complicações com outras aplicações do tipo... Nildo, Mais uma vez obrigado !! Nem tinha pensado no Send e PostMessage !!


:wink:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar