Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
1-23585
awaken
2002-06-24 15:37
2002.07.08
Как уничтожить форму из самой себя?


14-23777
Bor
2002-06-08 13:38
2002.07.08
ПОМОГИТЕ!!!!!!


14-23775
evgeg
2002-06-08 18:00
2002.07.08
Программиские басни


14-23734
lak_b
2002-06-06 00:26
2002.07.08
Interbase


6-23693
Filat
2002-04-10 17:20
2002.07.08
Обмен файлами между организацией и её клиентами через Интернет?




   Наверх