Главная страница
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.012 c
1-69815
VEG
2002-04-10 01:05
2002.04.22
Работа с ресурсами другого exe-шника.


3-69673
AlexAlex
2002-03-28 18:08
2002.04.22
Что делать при сообщении Directory is bisy


6-69962
Sender
2002-02-03 21:22
2002.04.22
Передача данных по сети


3-69703
KonuhovSegey
2002-03-30 09:53
2002.04.22
Кто знает подробности о SQL Dialect в IB6


1-69845
VEG
2002-04-11 09:32
2002.04.22
Потоки