Главная страница
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.019 c
15-1205136120
Jimmy
2008-03-10 11:02
2008.04.20
DVD и Dolby Digital 5.1


15-1204510679
TUser
2008-03-03 05:17
2008.04.20
Декриптинг


2-1206351890
operator
2008-03-24 12:44
2008.04.20
Оптимальный способ парсинга строк.


15-1204749799
Triton5
2008-03-05 23:43
2008.04.20
Простая программа, которая делает скрины экрана...


3-1195737356
dik
2007-11-22 16:15
2008.04.20
Пустые блобы