Форум: "WinAPI";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];
ВнизКак отследить запуск других приложений и при необходимости запетить его? Найти похожие ветки
← →
Маслов Толик (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 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c