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

Вниз

Как получить 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 вся ветка

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

Наверх





Память: 0.5 MB
Время: 0.213 c
2-1206519877
Andrewtitoff
2008-03-26 11:24
2008.04.20
Как удалить файл из проекта Delphi 2007


2-1206715069
TerminalHead
2008-03-28 17:37
2008.04.20
Нужна помощь! получение сигнала из COM порта для новичка,


2-1206545585
MikeLevinN
2008-03-26 18:33
2008.04.20
far


2-1206774938
Ramzes001
2008-03-29 10:15
2008.04.20
Проблема в работе StrPCopy


15-1205103927
Мото
2008-03-10 02:05
2008.04.20
Как проассоциировать файлы такого то типа со своей программой?





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