Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
Коврик   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
6-23701
Dime
2002-04-28 22:17
2002.07.08
Мониторинг сервера


14-23745
VAleksey
2002-06-06 07:09
2002.07.08
Delphi 5. Компиляция и запуск.


14-23757
MJH
2002-06-02 13:26
2002.07.08
Кто здесь с Владивостока, кроме меня и SPeller а ??


1-23545
Дельфятник
2002-06-26 17:37
2002.07.08
Access Violation при работе с TComboBox.


3-23500
vads
2002-06-17 12:24
2002.07.08
Нахожусь на грани помешательства !!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский