Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Определение запуска приложения [D7, WinXP]


Rules ©   (2006-06-14 23:26:00) 

Как определить моему приложению о запуске любых других приложений, желательно без hook`ов! Заранее спасибо!


inri13666   (2006-06-15 18:20:00) [1]

Удалено модератором
Примечание: Offtopic


homm   (2006-06-15 18:08:00) [2]

2inri13666
> Как определить моему приложению о запуске любых другихприложений


Ihor Osov'yak   (2006-06-15 18:07:00) [3]

inri13666, маю все основания предположить, что и умнее, и мудрее, и поопытнее чем ты. Хотя, в принципе, не исключаю возможной ошибки в этом утверждении...

Относительно "по сабжу".. Обратитесь к знающему русский язык на предмет растолкования различий между понятиями "во время того" и "после того"...

Относительно "мне как отследить" - откройте топик, сформулируйте вопрос, может кто будет иметь время и желание и бекграунд для ответа по существу.
Удачи.


inri13666   (2006-06-15 18:02:00) [4]

Удалено модератором
Примечание: Offtopic


Ihor Osov'yak   (2006-06-15 17:58:00) [5]

inri13666, извини за мой французкий, но может перед тем что-то там бросать, не имеющее отношение к сабжу, для начала бы с сервисами в XP разобрался, и в чем отличие или неотличие от сервисом в W2K.


inri13666   (2006-06-15 17:25:00) [6]

или можно воспользавоться FINDWindow('ClassName','WindowName')


inri13666   (2006-06-15 16:47:00) [7]

В Uses надо добавить   tlhelp32

Вроде Вот Так:

{Возвращает True если найдена хоть одна копия проги}
{ Имя EXE-Файла}
function ProcID1(name:string):boolean;
var
 handler:THandle;
 data:TProcessEntry32;
 e:byte;
begin
b:=0;
handler:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
 if Process32First(handler,data) then
   while Process32Next(handler,data) do
     if UpperCase(data.szExeFile)=UpperCase(name)
     then
     begin
     b:=b+1;             //Count of Applications
     ProcId1:=True;   //App alredy running
     end
     else  ProcId1:=False; //App alredy not running
CloseHandle(handler);
end;


Eraser   (2006-06-14 23:51:00) [8]

> Rules   (14.06.06 23:26)

если просто для статистики, то лучше время от времени проверять список процессов, если же необходимо определить точно момент запуска опр. программы, то [1]


Ihor Osov'yak   (2006-06-14 23:42:00) [9]

в общем случае решаемо в ring 0, причем для W9x и NT+ подходы различны.
на user level, имхо, гарантированого решения нет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо