Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.52 MB
Время: 0.017 c
8-1178783833
Veter
2007-05-10 11:57
2008.04.20
удаление TShape


2-1206269459
bagos
2008-03-23 13:50
2008.04.20
idhttp and asp


15-1204547059
TIF
2008-03-03 15:24
2008.04.20
Exit poll, выборы и... немного математики. Любителям головоломок


15-1204502666
Поп Гапон
2008-03-03 03:04
2008.04.20
А как китайцы набирают текст


2-1206397813
hahol_64_rus
2008-03-25 01:30
2008.04.20
массив и индесы