Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Глобальный отлов окон


Автор: dee63 19.1.2008, 21:32
День\вечер\ночь добрый!
Дорогое эксперты, и не очень эксперты, вот сталкнулся с еще одной проблемой.
Имеется программа, суть ее:отловить окно и надругаться над ним и программой, его порождающей.
есть функция, выполняющая сей замысел. но работает она либо один раз, либо с таймером по двум вариантам: через определенное время и постоянно. причем вариант с выполнением через опеределенное время выполняет действия через, скажем, 10 сек, дальше-не выполняет. А хочецца чтоб работало всегда, при этом не загружая сиситему. Функция делает перебор окон и ищет вхождение в заголовок слов.
Вот задумался над тем, как сделать так чтоб при создании ЛЮБОГО окна проверялся его заголовок.
Пошелв сторону создания хука-так нифига и не понял как его делать(
Может кто подскажет как еще можно сделать, ну в плане не через хук.
или может кто поделится ссылочкой на уже написаный хук.
сам конечно сижу разбираюсь но чот пока результата мало smile 

Автор: MetalFan 19.1.2008, 22:22
Цитата(dee63 @  19.1.2008,  21:32 Найти цитируемый пост)
ошелв сторону создания хука-так нифига и не понял как его делать(

разбирайся - материалов полно.

Цитата(dee63 @  19.1.2008,  21:32 Найти цитируемый пост)
сам конечно сижу разбираюсь но чот пока результата мало

плохой результат - тоже результат.
давай, код, что уже сделал, но не работает - наставим на путь истинный... а с нуля за тебя никто писать не будет

Автор: Ofer 20.1.2008, 00:58
Попробуй так:
Код

...
  while true do
  begin
    EnumWindows(@EnumWindowesWnd,0);   //находиш окно и делаеш с ним че надо
    h := CreateEvent(nil,true,false,'');
    ...
    WaitForSingleObject(h,1000);                      //а сдесь ждеш 1000мсек
    CloseHandle(h);
  end;
...


Работает одноздначно и систему не грузит

Автор: MetalFan 20.1.2008, 01:43
Ofer, нафига эвент??? чем sleep не угодил?

Автор: dumb 20.1.2008, 04:08
о. это индийский Sleep! smile

Автор: Rennigth 20.1.2008, 13:21
Цитата(dumb @  20.1.2008,  04:08 Найти цитируемый пост)
о. это индийский Sleep!  

 smile 


Цитата(MetalFan @  20.1.2008,  01:43 Найти цитируемый пост)
Ofer, нафига эвент??? чем sleep не угодил? 

а я вообще не понял смысла данного кода...  smile 

Автор: Ofer 20.1.2008, 16:14
MetalFan, это ведь одидн из вариантов.
А со слипом у меня когада-то давно чет не вышло, вобщем я на него обиделся smile

Автор: MetalFan 20.1.2008, 17:00
Цитата(Ofer @  20.1.2008,  16:14 Найти цитируемый пост)
А со слипом у меня когада-то давно чет не вышло, вобщем я на него обиделся

несерьезно для программиста утверждение)

Автор: Ofer 20.1.2008, 20:51
MetalFan, прошу заметить - который только учиться smile к тому же, даже не на программиста

Автор: dee63 26.1.2008, 22:42
Цитата(Ofer @  20.1.2008,  16:14 Найти цитируемый пост)
А со слипом у меня когада-то давно чет не вышло, вобщем я на него обиделся 

аналогично. не хочет работать паразит!
мтяк, разбираимся потихонечку)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)