Właczenie programu po właczeniu jakiegos pliku *.EXE

0

Witam!
Chciałbym się spytać o pewną rzecz. A mianowicie mam program , który ma się uruchamiać po starcie pliku *.exe. Przykładowo otwieram plik NOTEPAD.exe i w tym momencie włącza się mój program a po 20 sekundach się wyłącza. Nie proszę o gotowy kod , lecz o jakiś poradnik, FAQ - coś w tym stylu.
Z góry dziękuje.

0

Ja bym to zrobil tak:

  1. Pisze aplikacje ktora ma ShowMainForm:=false;
  2. Sprawdza ona procesy
  3. Jesli natrafi na proces np notepad.exe wykonuje shellexecute i uruchamia wybrany przez ciebie program:)

Jesli zdecydujesz sie na takie rozwiazanie to wszsytkie potrzebne funkcje instrukcje i kody powinienes znalezc na necie jesli nie to pisz na priv przesle ci moje :)

0

Tak właśnie o to mi chodzi , ale do tego potrzebne będzie założenie globalnego hooka raczej. :)

0

Lepszego sposobu nie znam :)

0

Troche poczytałem przez tą chwilkę o tym i wygląda na to , że musi to być funkcja która przechwytuje w pliku dll. A ja z Delphi dopiero zaczynam to mógłbyś troszkę podpowiedzieć jak to zrobić? :-)

0

Ukrywasz forme piszac:

Application.ShowMainForm := False;

Nastepnie dajesz jakis timer z interval powiedzmy 2000 ms i ustawiasz tam funkcje

function ListaProcesow:boolean;
var
  Uchwyt:tHandle;
  Proces:tProcessEntry32;
  pr: TStringList;
  i: Integer;
begin
  Result := false;
  Sleep(1000);
  Uchwyt:=CreateToolHelp32SnapShot(TH32CS_SNAPALL,0);
  Proces.dwSize:=SizeOf(Proces);
  pr:=TStringList.Create;
  if Integer(Process32First(Uchwyt,Proces))<>0 then
  repeat
    pr.Add(Proces.szExeFile);
  until Integer(Process32Next(Uchwyt,Proces))=0;
  for i := 0 to pr.Count - 1 do
    if (pr[i] = 'notepad.exe') then
    begin
      Result := True;
      end_restore := True;
    end;
  closehandle(Uchwyt);
  pr.Free;
end;

To przerabiasz pod twoje potrzeby dziala to tak ze czyta cala liste procesow i weryfikuje (True/False) czy dany proces istnieje

Na samym koncu robisz to co jest tutaj:
http://www.lukas-home-page.ovh.org/artykuly/delphi-ShellExecute.php

0

Dzięki wielkie ale mam nowy problem. Ehhh.. Używam Delphi 7 Personal i wszystko było ok tzn. nie wklejałem twojego kodu bo nie mam jak a teraz jak chce zkompilować program który kompilowałem przedtem to wyskakuje okno EAccesViolation:Acces violation at address CYFRY in module "Project1.exe". Wcześniej tak nie miałem . Reinstall nie pomógł...

0

ten blad wyskakuje gdy np deklarujesz tablice od 1 do 10 i chcesz do niej wpisac 11 rekord :) (mniej wiecej) blad pewnie lezy gdzies w kodzie musisz przeanalizowac kod i wylapac niescislosc

0

Ok juz naprawiłem bawiłem się komponentem i spier*czyłem. Słuchaj jest sprawa tego typu ,że totalnie nie wiem jak zainstalować ten kod. Mógłbyś mi to łopatologicznie wytłumaczyć? Jakbyś mógł to pisz na GG 2220478 :)

0

piszesz trojana :>

0

Mi to też zalatuje malwarem, ale niech będzie. Masz gotowca. Wystarczyło chwilę pomyśleć aby to dobrze
skompilować, ale jak to zwykle bywa lenistwo wzieło górę. Poniższy exe jak wykryje uruchomiony proces
o nazwie notepad.exe wywoła plik cmd.exe. A wszystko jest sprawdzane w Timerze co 2000 milisekund.
http://www.speedyshare.com/files/20563821/monitorowanie_procesow.rar

0

No tak zapomnialem ze do Uses trzeba dodac TlHelp32

1 użytkowników online, w tym zalogowanych: 0, gości: 1