Вниз
Скачать: 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
14-23730
Esu
2002-06-04 19:07
2002.07.08
О полноте жизни


14-23767
Аня
2002-06-07 13:10
2002.07.08
Настройки Delphi


14-23746
QWest
2002-06-04 09:04
2002.07.08
Доделал прогу....


4-23823
AlexanderSK
2002-05-06 12:27
2002.07.08
GetVolumeInformation


7-23807
Dizer
2002-04-16 11:05
2002.07.08
Интерфейс RS-485




   Наверх