Текущий архив: 2008.04.20;
Скачать: CL | DM;
Вниз
Как получить handle элемента управления окна? Найти похожие ветки
← →
йцукенг (2007-05-10 19:15) [0]Как получить handle какого-нибудь элемента управления (button,combobox и др.) любого окна?
← →
begin...end © (2007-05-10 20:49) [1]FindWindowEx или EnumChildWindows
← →
homm © (2007-05-10 21:44) [2]> Как получить handle какого-нибудь элемента управления (button,
> combobox и др.) любого окна?
«Какойнибудь» обязательно приходит первым аргументом в оконную функцию элемента управления.
← →
Leonid Troyanovsky © (2007-05-10 22:08) [3]
> homm © (10.05.07 21:44) [2]
> «Какойнибудь» обязательно приходит первым аргументом в оконную
> функцию элемента управления.
Выделить нечто относящееся именно к оконной процедуре некоего
контрола можно лишь зная хендл оного. Т.е., в том и вопрос.
--
Regards, LVT.
← →
homm © (2007-05-10 22:13) [4]> Выделить нечто относящееся именно к оконной процедуре некоего
> контрола можно лишь зная хендл оного.
Да нет, достаточно знать точку входа в эту процедуру, а ее можно узанать, зная виндовый класс этого окна. Еще можно встрять в цикл PeekMessage/DispatchMessage.
← →
Leonid Troyanovsky © (2007-05-10 22:22) [5]
> homm © (10.05.07 22:13) [4]
> Да нет, достаточно знать точку входа в эту процедуру, а
> ее можно узанать, зная виндовый класс этого окна.
Интересно б было узнать класс окна, не зная его хендла.
--
Regards, LVT.
← →
homm © (2007-05-10 22:24) [6]> Интересно б было узнать класс окна, не зная его хендла.
Мы же не знаем условия задачи. Возможно он известе априорно ;)
← →
Leonid Troyanovsky © (2007-05-10 22:34) [7]
> homm © (10.05.07 22:24) [6]
> Мы же не знаем условия задачи. Возможно он известе априорно
> ;)
"Какого-нибудь (любого)" <> известного класса, IMHO.
--
Regards, LVT.
← →
homm © (2007-05-10 23:06) [8]> "Какого-нибудь (любого)" <> известного класса, IMHO.
Ну вообще-то в сабже вообше ни о чем не говориться. В том числе нет и намека на то что FindWindowEx или EnumChildWindows могут пригодиться, так что я просто предложил еше один вариант :)
← →
йцукенг (2007-05-11 13:01) [9]ЛЮДИ, я упрощу вам задачу:
- например запущен виндовский калькулятор, известен его хендл. Как получить доступ к его Edit контролу и считать его значение text к примеру?
← →
homm © (2007-05-11 21:50) [10]> ЛЮДИ, я упрощу вам задачу:
Спасибо, с учетом того что задачи у нас и не бо, теперь она стала вообще простой :)
← →
{RASkov} © (2007-05-11 23:34) [11]> [9] йцукенг (11.05.07 13:01)
> ЛЮДИ, я упрощу вам задачу:
Прям выглядит так: Не хочешь проблем не заходи на www.delphimaster.ru
Ты бы подробнее свою проблему.... Например из [9]: почему калькулятор? Почему его Эдит? Т.е. как алгоритм твоей программы определяет, что ей нужно в данный момент времени?
← →
Cobalt © (2007-05-12 04:03) [12]2 йцукенг (11.05.07 13:01) [9]
Значит так: запускаешь WinSight32 и смотришь на нужную тебе прогу - как там у неё лежат окна друг на друге, и, соответственно, пляшешь от этого.
← →
йцукенг (2007-05-12 15:25) [13]
> [11] почему калькулятор? Почему его Эдит? Т.е. как алгоритм твоей
> программы определяет, что ей нужно в данный момент времени?
>
Какая разница - ПОЧЕМУ! Просто издеваюсь над калькулятором.
Еще раз объясняю: я определяю хендл кальк-ра через FindWindow; на его форме есть (если тебя Edit смущает) кнопка "9" (можешь проверить). Так как мне получить к ней доступ (изменить размеры, установить caption и т.п.)?
← →
{RASkov} © (2007-05-12 15:53) [14]> [13] йцукенг (12.05.07 15:25)
> Еще раз объясняю: я определяю хендл кальк-ра через FindWindow;
> на его форме есть (если тебя Edit смущает) кнопка "9" (можешь
> проверить).
Ты не понял мой последний вопрос.... или не хочешь отвечать:( Ну как хочешь.... В общем см [1]. Да и нафик, походу твоя прога не нужна никому....
← →
йцукенг (2007-05-12 16:40) [15]Ладно блин! я раскажу зачем мне это было нужно. У меня TV-тюнер и программа DScaler для просмотра телеканалов. Так вот я хочу написать прогу, которая в фоновом режиме будет отслеживать: какой телеканал в течении какого времени был включен и записывать в текстовый файл.
На окне DScaler-а есть выпадающий список (как ComboBox), в котором записаны названия каналов. Так как мне стянуть текущее значение того списка?
← →
ingenio (2007-06-10 20:43) [16]Блин пацаны, вы или дебилы, или прикинулись даунами полными! Вам человек ясный вапрос задал, а вы ему начинаете вгонять: типа нахрена тебе эта программа? А что она делает? Да она не катит ваще! Вы мля совсем что ли? Человек по адресу пришёл, думал ему сдесь помогут. Вы так сразу и скажите, что сами нихрена не знаете как этот чёртов handle выдрать для элемента в чужом окне! А то загнули ему ваще не по теме. Вот и обращайся на форум к таким как вы!!!
← →
Anatoly Podgoretsky © (2007-06-10 22:12) [17]Закусывать надо
← →
DVM © (2007-06-10 23:17) [18]
> ingenio (10.06.07 20:43) [16]
в [1] был дан исчерпывающий ответ, чего еще надо?
← →
homm © (2007-06-10 23:55) [19]> чего еще надо?
см [17] :)
← →
Углук © (2007-06-11 12:08) [20]Хэндл чужого окна можно получить через FindWindow.
Хэндл комбобокса через FindWindowEx. По этим функциям читайте Help-> Win32 SDK Там же - о сообщениях.
Чтобы стянуть текущее значение канала ( то есть свойство Text комбобокса), необходимо дать фокус комбобоксу( после того, как Вы получите его хэндл) путем посылки сообщения WM_SETFOCUS (см. там же),или же, путём эмулирования нажатий клавиши мышки или клавиши Таб (см. SetCursorPos , keybd_event,mouse_event : там же ) .
Далее, посылаете комбобоксу сообщение WM_GETTEXT (см. там же)
Если не сработает, эмулируете нажатие клавиш Контрол+С, или же Контрол+Инсерт (AttachThreadInput ,keybd_event- там же).
Должен осведомить, что задача взятия содержимого элемента управления - каждый раз нетривиальная. Стоит попробовать все варианты и не терять надежды на успех. Удачи!
← →
Bora_ru © (2007-08-17 23:45) [21]
> Углук © (11.06.07 12:08) [20]
Спасибо. Хоть один нормальный человек попался
← →
Юрий Зотов © (2007-08-21 02:50) [22]> Bora_ru © (17.08.07 23:45) [21]
В первом же постинге был дан правильный и полный ответ. Вы прислушаться к нему не пожелали. Чему же удивляться?
Страницы: 1 вся ветка
Текущий архив: 2008.04.20;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.039 c