Форум: "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