Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.08.21;
Скачать: CL | DM;

Вниз

Как отловить информацию о запускаемых программах?   Найти похожие ветки 

 
И. Павел ©   (2011-05-01 13:34) [0]

Здравствуйте.
Я хочу получать информацию обо всех запускаемых приложениях на своем компьютере.
Конечно, можно просто просматривать список процессов, но тогда его нужно будет обновлять раз в 1 сек или чаще (бывают же и короткие процессы).
Подскажите, пожалуйста, можно ли определить запуск процесса каким-то другим способом? Например, идеальным вариантом была бы возможность объявить как-нибудь callback функцию, которую система вызывала бы при запуске нового процесса/приложения.
PS: программы могут не иметь окон, т.е. быть консольными.
Заранее спасибо.


 
oldman ©   (2011-05-01 13:48) [1]


> Я хочу получать информацию обо всех запускаемых приложениях
> на своем компьютере.

> Подскажите, пожалуйста, можно ли определить запуск процесса
> каким-то другим способом?


Так приложение или процесс???


 
clickmaker ©   (2011-05-01 13:50) [2]

HKEY_CLASSES_ROOT\exefile\shell\open\command ?


 
И. Павел ©   (2011-05-01 14:02) [3]


> oldman ©   (01.05.11 13:48) [1]

Хочу сделать такую возможность и для приложений и для процессов.
В первую очередь - для приложений (т.к. список процессов сложно просматривать и анализировать - один хром там 10 процессов создает при одной открытой странице). Но и для процессов это было бы тоже полезно.


 
И. Павел ©   (2011-05-01 14:37) [4]


> clickmaker ©   (01.05.11 13:50) [2]

Большое спасибо. Я написал в реестре для параметра по умолчанию и IsolatedCommand значение C:\starter\starter.exe "%1" %* . Программа starter выглядит так:

program Project1;

{$APPTYPE CONSOLE}

uses
 SysUtils, Windows;

var i: integer;
   s: string;
begin
 Writeln("Started: " + ParamStr(1));
 s := "";
 for i := 1 to ParamCount do
 begin
   if i > 1 then s := s + " ";
   s := s + """ + ParamStr(i) + """;
 end;

 WinExec(PAnsiChar(s), SW_SHOWNORMAL);
 Readln;
end.


Подскажите, пожалуйста, не допустил ли я где-нибудь ошибку? Потому что, насколько я понимаю, это достаточно серьезное изменение в системе, а моя программа должна просто отслеживать запуск новых приложений и не мешать другим программам.


Но если программа запускается неявно, а просто ассоциируется с открываемым ресурсом, то starter игнорируется.

Подскажите, пожалуйста, как заставить проходить через starter.exe еще и программы, запускающиеся после "запуска" ресурсов, связанных с этими программами? Т.е. как, например заставить mediaplayer пройти отметиться  в starter после того, как я открою файл clock.avi?


 
clickmaker ©   (2011-05-01 14:39) [5]

универсальное решение, скорей всего, только либо в перехвате CreateProcess либо в установке хука - PsSetCreateProcessNotifyRoutine


 
В школу   (2011-05-01 16:37) [6]

audit


 
И. Павел ©   (2011-05-01 18:58) [7]


> clickmaker ©   (01.05.11 14:39) [5]

Спасибо. Но все это, насколько я понял "тяжелая артиллерия", направленная на идентификацию процесса и его останов при необходимости. Отлов CreateProcess  (кое-где вообще встречал упоминания, что при создании процесса и Createprocess может не вызываться...) производится либо через иньекцию в системную dll, либо через редактирование импорта всех процессов (думаю, тут придется еще и касперского усмирять :). А PsSetCreateProcessNotifyRoutine требует написание драйвера, с чем я еще не сталкивался. У меня скорее любительская задача и не требуется реагировать на вызов API моментально, т.е. не антивирус и не вирус.


> В школу   (01.05.11 16:37) [6]
> audit

А что такое audit?

Мне нужно просто предоставлять пользователю отчет о том, что запускалось в определенный день. Подскажите, пожалуйста, может быть windows где-нибудь сама хранит статистику запущенных программ? Т.е. можно ли, к примеру, узнать, какие программы были запущены 10.2.2010?


 
clickmaker ©   (2011-05-01 19:12) [8]

> А что такое audit?

http://technet.microsoft.com/en-us/library/cc775520(WS.10).aspx


 
И. Павел ©   (2011-05-01 19:52) [9]


> clickmaker ©, В школу

Большое спасибо! То что нужно!



Страницы: 1 вся ветка

Текущий архив: 2011.08.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
2-1305008500
бумбум
2011-05-10 10:21
2011.08.21
Перенести содержимое TreeView в другой


8-1215281172
Дмитрий Белькевич
2008-07-05 22:06
2011.08.21
Фильтры деинтерлейса.


13-1126851536
Антон773
2005-09-16 10:18
2011.08.21
перенос кода с win32 на .net


1-1263547969
parasolka
2010-01-15 12:32
2011.08.21
Подписи в TChart.


6-1240895013
HF-Trade
2009-04-28 09:03
2011.08.21
TWebBrowser запрет ShowMessage