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

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

Как отследить запуск других приложений и при необходимости запетить его? [D5, Win95/98]


Маслов Толик ©   (2002-02-15 12:47:00) 

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


paul_shmakov   (2002-02-19 12:12:00) [1]

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

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


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

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


Almaz   (2002-02-19 03:52:00) [3]

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


Digitman   (2002-02-18 17:02:00) [4]

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


Olgerd   (2002-02-18 16:12:00) [5]

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


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

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


Olgerd   (2002-02-18 12:06:00) [7]

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


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


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


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


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

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



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

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

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


[NIKEL]   (2002-02-15 18:53:00) [11]

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


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

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


[NIKEL]   (2002-02-15 18:41:00) [13]

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


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

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


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

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


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

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


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

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


Наверх

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