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

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.008 c
2-1207916107
Alral
2008-04-11 16:15
2008.05.11
TWebBrowser- получение HTML


2-1207943501
Megabyte
2008-04-11 23:51
2008.05.11
Скрытый ввод - готовый компонент


2-1207872096
Cornell
2008-04-11 04:01
2008.05.11
Вопрос по DelphiX


15-1206603197
usr
2008-03-27 10:33
2008.05.11
MS SQL Server 2000


15-1206602366
@!!ex
2008-03-27 10:19
2008.05.11
VNC не хочет подключаться по интернету





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский