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

Вниз

Управление приложениями   Найти похожие ветки 

 
Коврик ©   (2002-06-23 19:36) [0]

Хотелось бы спросить:
Есть мысль сделать программу, способную отслеживать запуск других приложений и как-либо влиять на их дальнейшую работу(закрытие,сворачивание,убирание ее в трей).Но как реализовать это не знаю.
Если кто знает, где можно посмотреть подобный код, или кинуть ссылку, где можно это прочитать,откликнитесь, пожалуйста.
Заранее благодарен!


 
rhf ©   (2002-06-23 19:45) [1]

главная ссылка - SDK :)


 
rhf ©   (2002-06-23 19:48) [2]

почитай про хуки тут
http://delphi.mastak.ru/articles/hooks/index.html

а то как закрыть, свернуть приложение и т.п. есть в каждом faq


 
DenKop ©   (2002-06-23 23:23) [3]

Кратко: свернуть, развернуть, закрыть приложение можно так:
1)Находишь по названию окна его handle(GetWindow, GetWindowText...)
2)Далее посылаешь ему сообщение WM_SYSCOMMAND

Вот это из SDK:

LRESULT SendMessage(

HWND hWnd, // handle of destination window
UINT Msg, // message to send
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);

BOOL PostMessage(

HWND hWnd, // handle of destination window
UINT Msg, // message to post
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);

Берёшь одну из этих функций (взависимости от того насколько серьёзно ты решил поуправлять приложением) и передаёшь ей параметры.
В качестве Msg: WM_SYSCOMMAND
wPARAM: SC_MINIMIZE
SC_MAXIMIZE
SC_CLOSE и т.д.
lPARAM: NULL
Вот и всё!






 
polygon   (2002-06-25 21:50) [4]

2 способа отслеживания запуска приложения
1.(простой до безобразия) В HKEY_CLASSES_ROOT описано что делать shell"у при запуске того или иного файла. Находим /exefile/shell/open/command. В значении по умолчанию вместо "%1" %* пишем myprog.exe "%1" %*. В результате при запуске любого EXE запускается myrog.exe и получает строку запуска приложения в качестве параметра. Запустить иль отвергнуть сие приложение дело на наших рук.(большой МИНУС этого способа заключается в том что отлавливается только ShellExecute, CreateProcess проходит).
2.(мощный и сложный)Этим способом отлавливается создание любого процесса. Пишем динамический VXD и отлавливаем следующие VXD сообщения
Control_Dispatch Create_Process, OnCreateProcess
Control_Dispatch Destroy_Process, OnDestroyProcess
Хочу заметить что они (сообщения) не описаны в DDK :(
в EDX возвращается Handle процесса. Далее с помощью _SHELL_PostMessage отсылаем Handle своему приложению которое и решает что делать дальше.






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

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

Наверх




Память: 0.48 MB
Время: 0.019 c
3-23440
Oleg_er
2002-06-13 15:26
2002.07.08
Монстры, что с запросом? посоветуйте


1-23578
VDen
2002-06-26 16:42
2002.07.08
Поиск в TMemo


3-23506
AAAPLE
2002-06-15 13:05
2002.07.08
Непонятные символы при добавлении записей в запросе


1-23650
Looser
2002-06-26 08:14
2002.07.08
Есть ли возможность поместить TStrings в ListView.Items?


1-23586
nitro313
2002-06-25 01:31
2002.07.08
---|Ветка была без названия|---