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

Вниз

Как отследить запуск других приложений и при необходимости запетить его?   Найти похожие ветки 

 
Маслов Толик   (2002-02-15 12:47) [0]

Как отследить запуск других приложений и при необходимости запетить его?


 
[NIKEL] ©   (2002-02-15 17:44) [1]

самый банальный способ, это крутить цикл по всем окнам и смотреть их title , если встретиться чё нить на подобе "Microsoft Internet Explorer" то посылать его в даун :)


 
Иван Шихалев ©   (2002-02-15 17:56) [2]

Еще лучше - смотреть на класс окна. EnumWindowsEx >> GetClassName


 
[NIKEL] ©   (2002-02-15 18:13) [3]

to Иван Шихалев
а что даст класс окна???


 
Иван Шихалев ©   (2002-02-15 18:34) [4]

Он стабильнее заголовка.


 
[NIKEL] ©   (2002-02-15 18:41) [5]

причем тут класс окна когда надо получить информацию какая это программа (ее название) ???


 
Иван Шихалев ©   (2002-02-15 18:49) [6]

Сейчас у меня окно эксплорера называется "Мастера DELPHI | Как отследить запуск других приложений и при необходимости запетить его? - Microsoft Internat Explorer" . Перейду на другую страницу - будет другой заголовок. А класс окна при этом не меняется.


 
[NIKEL] ©   (2002-02-15 18:53) [7]

хех... а что нам мешает сделать так
if (LowerCase(Title).AnsiPos("microsoft internat explorer")
{
...
}
???
и как зная класс окна узнать какому приложению оно принадлежит?


 
Иван Шихалев ©   (2002-02-15 19:01) [8]

А если нам нужен не iexplore? Например, WinHlp32 выдает только то, что написано в файле справки.

А узнавать приложение и не надо - просто пределить классы заранее. Я так понял, что приложения-то известны еще при написании программы.


 
Digitman (M) ©   (2002-02-16 17:50) [9]

Приложение ведь может быть и консольным ! А для консольного приложения окно системой не создается ! Так что, путь с поиском окон - тупиковый.
Только вот непонятно, почему вообще речь пошла о том, как принудительно закрыть некий процесс... вопрос-то стоит - как ЗАПРЕТИТЬ его запуск ? Чтобы это реализовать, надо умудриться как минимум изменить поведение ф-ции ядра CreateProcess(). А можно ли это сделать в приниципе (да еще и - корректно) - пока еще никто (кроме MS, разумеется) не додумался )))




 
Tosov ©   (2002-02-18 00:46) [10]


> пока еще никто (кроме MS, разумеется) не додумался


А антивирусы что делают?


 
Olgerd ©   (2002-02-18 12:06) [11]

Запретить запуск можно: что в реестре написано делать с файлами .exe - %1. А можно поменять на "c:\myprog.exe %1". А в своей проге уже запускать ParamStr(1) если надо. Я думаю умные люди поймут.


 
Digitman ©   (2002-02-18 12:27) [12]

>Tosov
>Olgerd
А почему вы рассматриваете только вариант, когда запуск происходит из оболочки - "щелчком" на ярлыке/иконке ? Что, иные условия старта процесса в Win32 как бы уже не существуют, да ? Что, программный старт порожденного процесса MS уже отменил ?


 
Olgerd ©   (2002-02-18 16:12) [13]

>Digitman ©
Я рассматриваю варианты, когда программу запускает пользователь. А он обычно делает так.


 
Digitman ©   (2002-02-18 17:02) [14]

>Olgerd
А вот ведь автор об этом, заметь - ни слова. О пользователе каком-то там.
И поэтому следует рассматривать именно общий случай - вызов тем или иным образом API-ф-ции CreateProcess()


 
Almaz ©   (2002-02-19 03:52) [15]

>Tosov
А для антивирусов пишется свой драйвер, который и отслеживает попытки открытия файлов.



 
_Tosov_   (2002-02-19 07:44) [16]

Digitman
А я тут при чем?
У меня сейчас антивируса нет, но думаю он и CreateProcess может перехватить. Другое дело каким образом (драйвер/перехват функции..)


 
paul_shmakov ©   (2002-02-19 12:12) [17]

уже в сотый раз отвечаем на этот вопрос :) если решать эту задачу правильно, то перехват нужно осуществлять драйвером. если решать криво, то перехватом вызовов api.

к сожалению, старые сообщения в форуме постоянно обрезаются, поэтому осталась одна ссылка:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1010928576&n=5



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

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

Наверх




Память: 0.5 MB
Время: 0.015 c
1-69891
kserg@ukr.net
2002-04-09 13:12
2002.04.22
Как преобразовать множество к целому типу и обратно?


1-69775
snoup
2002-04-07 21:38
2002.04.22
Как сделать скриншот своей проги?


14-70026
Esa
2002-03-18 13:40
2002.04.22
AccessViolation


1-69850
Григорий
2002-04-06 00:43
2002.04.22
Немецкий алфавит


6-69960
Garmahis
2002-02-07 23:59
2002.04.22
Работа с реестром.