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

Вниз

получить хендл окна...   Найти похожие ветки 

 
istok   (2007-08-31 18:48) [0]

Как максимально просто получить хендл most top окна текущего процесса? Только через EnumWindowsProc ?

Если конкретнее - то в хуковой длл надо получить handle окна, к которому оно прицеплено.


 
Углук ©   (2007-08-31 23:00) [1]

GetForegroundWindow


 
Углук ©   (2007-08-31 23:01) [2]

А вообще я делал так, как мне объяснил Инс:

dwInvokerHandle:=FindWindow(nil,"название_окна");


 
istok   (2007-09-01 00:14) [3]

>GetForegroundWindow
а кто сказал что окно в фокусе???
я такого не говорил))

>dwInvokerHandle:=FindWindow(nil,"название_окна");
не мой процесс. я в нём лишь хук длл.


 
Углук ©   (2007-09-01 15:57) [4]

Ну и что,заголовок окна узнать несложно, оно как правило не меняется. Если меняется (например, сначала "Блокнот" а потом "Блокнот - Безямянный1.txt"), то можно найти хендл окна,зная его класс, что можно подсмотреть в любом отладчике, или например в ДеДе.


 
Leonid Troyanovsky ©   (2007-09-01 17:22) [5]


> istok   (31.08.07 18:48)  

> Если конкретнее - то в хуковой длл надо получить handle
> окна, к которому оно прицеплено.

Хуки цепляются не к окнам, а к потокам.
Перечислить окна потока можно EnumThreadWindows.

--
Regards, LVT.


 
Инс ©   (2007-09-01 17:34) [6]


>  istok   (31.08.07 18:48)

А хук какого типа? Если, например, WH_GETMESSAGE, то параметр lParam в функции ловушки указывает на структуру tagMSG, которая содержит дескриптор окна, которому сообщение адресовано.


> А вообще я делал так, как мне объяснил Инс:

Если я объяснил что-то в каком-то конкретном случае, то это не значит, что теперь это нужно использовать везде и всюду. В данном случае, уверен, нужно действовать по другому.


> Хуки цепляются не к окнам, а к потокам.

Я думаю, все поняли, что автор имел в виду. Кстати, автор, замечание то верное. Может вы недостаточно хорошо разобрались с хуками? Может вам еще рановато?


 
Углук ©   (2007-09-01 19:20) [7]


> Если я объяснил что-то в каком-то конкретном случае, то
> это не значит, что теперь это нужно использовать везде и
> всюду. В данном случае, уверен, нужно действовать по другому.
>
>

Я просто вспомнил, как я у Инса спрашивал совет, и он мне подсказал на эту дельную мысль. Ссылка на Инса - это простая ремарка, не более того.


 
istok   (2007-09-02 17:48) [8]


> Я думаю, все поняли, что автор имел в виду. Кстати, автор,
>  замечание то верное. Может вы недостаточно хорошо разобрались
> с хуками? Может вам еще рановато?


Конечно плохо разбираюсь. Просто лень РАК юзать по такой мелочи. Дольше объяснять буду чего мне надо.. Хотя если в конце концов задача не решится, то придется обращаться...

А вообще именно этот хук выгружается плохо. Другие хуки выгружались лучше..

А насчет того что хуки не к окнам цепляются - эт сори, давно с ними не имел дел и попутал че к чему..


 
Инс ©   (2007-09-02 21:47) [9]


> istok   (02.09.07 17:48) [8]

Я не понял... Вопрос закрыт? Или вы просто не заметили фразу

> А хук какого типа?

Без нее ответить на поставленный вопрос проблематично...


> А насчет того что хуки не к окнам цепляются - эт сори, давно
> с ними не имел дел и попутал че к чему..

Да нет, просто видимо вы Фленова начитались, а он сам об этом не знал ;) У него там насчет хуков столько ляпов, причем очень даже серьезных. Ни разу не видел, чтобы задающие на форумах вопросы люди вызывали правильно CallNextHookEx (у Фленова неправильно).


 
Riply ©   (2007-09-03 00:22) [10]

> [9] Инс ©   (02.09.07 21:47)
>Ни разу не видел, чтобы задающие на форумах вопросы
>люди вызывали правильно CallNextHookEx (у Фленова неправильно).
А как можно вызвать CallNextHookEx "неправильно" ?
Нет Фленова - негде посмотреть :)


 
Инс ©   (2007-09-03 01:20) [11]


> Нет Фленова - негде посмотреть :)

Зато полно вопросов по хукам, там и посмотреть... ;) Гораздо труднее найти пример правильного вызова.


 
Riply ©   (2007-09-03 01:27) [12]

> [11] Инс ©   (03.09.07 01:20)
>Зато полно вопросов по хукам, там и посмотреть... ;)
Гораздо лучше получать информацию из первоисточника :)


 
Инс ©   (2007-09-03 01:47) [13]


> Riply ©   (03.09.07 01:27) [12]

Ну вот, как раз то, что я и предполагал:
http://delphimaster.net/view/4-1188767364/


 
Leonid Troyanovsky ©   (2007-09-03 09:42) [14]


> Riply ©   (03.09.07 00:22) [10]

> А как можно вызвать CallNextHookEx "неправильно" ?

Ну, во-первых, в msdn очень бестолково описано, когда ее нужно
вызывать (а вызывать надо, считай, всегда).
А во-вторых, для 9х нужно было передавать в нее хендл хука,
что вызывало у некоторых программистов затруднение.

--
Regards, LVT.



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

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

Наверх




Память: 0.5 MB
Время: 0.015 c
2-1208075381
assassin8899
2008-04-13 12:29
2008.05.11
ADOTable и ADOQuery


2-1207804307
Chorniy
2008-04-10 09:11
2008.05.11
ReadProcessMemory читает всегда с одного адреса... где-то ошибка?


2-1208080633
Megatron
2008-04-13 13:57
2008.05.11
Считывать данные с реестра


2-1207909029
savyhinst
2008-04-11 14:17
2008.05.11
Как вызвать диалог выбора папки???


2-1207738265
Fr1K
2008-04-09 14:51
2008.05.11
Событие по нажатию