|
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
|
|
Узнать текст ToolTip-a контрола в чужом приложении ?22.09.2017, 19:32. Показов 1318. Ответов 13
Метки нет (Все метки)
Чужое приложение (CorelDRAW), в нём есть до десятка контролов класса - "Edit", причем местоположение их совершенно разное у разных юзеров, workspace настраивается индивидуально, текст в них постоянно меняется в процессе работы с программой. Мне надо узнать hwnd одного из них, чтоб "вписывать" в него нужное мне число. Все hwnd нахожу (EnumChildWindow), "отфильтровываю" все класса "Edit", но не могу выделить нужный мне - не отличаются они ничем, не за что зацепиться. Но вот ToolTip-ы у них разные. Есть ли возможность получать текст ToolTip-а контрола при известном hwnd этого контрола?
0
|
|
| 22.09.2017, 19:32 | |
|
Ответы с готовыми решениями:
13
Изменение подсказки ToolTip контрола во время выполнения Изменение текста в ToolTip вместе с текстом контрола |
|
|
||
| 22.09.2017, 21:01 | ||
|
0
|
||
|
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
|
|
| 23.09.2017, 17:56 [ТС] | |
|
Спасибо, буду копать в эту сторону. А конкретных примерчиков не подбросите?
0
|
|
|
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
|
||||||
| 01.10.2017, 01:41 [ТС] | ||||||
|
После ДОЛГИХ поисков накопал такое:
Думаю, что hWnd - это hWnd контрола, тултип которого мы пытаемся считать, надеюсь не ошибаюсь? Мужики, кто понимает, проверьте, а? работает или нет?
0
|
||||||
|
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
|
|
| 01.10.2017, 18:42 [ТС] | |
|
The Trick - спасибо за подсказку! GetDlgCtrlID работает, нужный мне контрол имеет уникальный ID и при повторных запусках CorelDraw ID нужного мне контрола не меняется, всё отлично, но!
есть один непонятный мне нюанс: этот ID конкретного Edit-контрола - у других, установивших CorelDraw, он будет таким же как и на моём компе или он присваивается контролу при установке CorelDraw, подобно тому, как при каждом запуске программы контролу присваивается новый hWnd, то есть если я в моей проге пропишу: 1. При помощи EnumChildWindow найти все дочерние класса Edit (6-10 штук) 2. выбрать из всех полученых Edit-контролов контрол с ID =1234567, запомнить его hWnd 3. при нажатии кнопки вписывать нужное мне число в Edit-контрол с этим hWnd то будет ли это работать у людей установивших ту же версию CorelDraw, что и у меня?
0
|
|
|
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
|
|
| 03.10.2017, 12:53 | |
|
giaber, это вы всё с тем NudgeOffset'ом боретесь?
Любопытно, пользователю нужно будет несколько раз изменять его значение во время работы?
0
|
|
|
Модератор
|
|||||||
| 03.10.2017, 13:51 | |||||||
|
Пример:
Вывод
Caption: Начальная точка объекта DescriptionText: Задать использование контрольной точки во время позиционирования или масштабирования объекта. ID: 3148e122-4f73-6e8a-4dfb-b2f6a84090d5 Parameter: Tag: ToolTipText: Задать использование контрольной точки во время позиционирования или масштабирования объекта. Visible: True Caption: Расположить DescriptionText: Расположить объект на странице, указав его координаты X и Y. ID: a41164ff-c9e9-4b2c-954a-095f4204538e Parameter: Tag: ToolTipText: Расположить объект на странице, указав его координаты X и Y. Visible: True Caption: Разделитель DescriptionText: ID: 266435b4-6e53-460f-9fa7-f45be187d400 Parameter: Tag: ToolTipText: Visible: True Caption: Размер DescriptionText: Задать высоту объекта. ID: 325d7c86-da3a-4610-bd25-5cf98cf66a41 Parameter: Tag: ToolTipText: Задать высоту объекта. Visible: True Caption: Масштаб DescriptionText: Указать новый масштаб объекта в процентах. ID: 42bef211-16e5-4b4f-b9ee-52b7b5476232 Parameter: Tag: ToolTipText: Указать новый масштаб объекта в процентах. Visible: True Caption: Пропорциональное отношение DescriptionText: Cохранять исходное соотношение ширины и высоты при масштабировании объекта. ID: d289f32b-3808-4510-b892-fd2cb0820209 Parameter: Tag: ToolTipText: Cохранять исходное соотношение ширины и высоты при масштабировании объекта. Visible: True Caption: Разделитель DescriptionText: ID: 266435b4-6e53-460f-9fa7-f45be187d400 Parameter: Tag: ToolTipText: Visible: True Caption: Угол DescriptionText: Задать угол поворота объекта. ID: 8723ad52-3e31-473c-8756-7ae85abcc483 Parameter: Tag: ToolTipText: Задать угол поворота объекта. Visible: True Caption: Центр вращения DescriptionText: Расположить центр вращения, указав его координаты X и Y. ID: 067af1c1-d607-4674-aa31-ba3e8726c366 Parameter: Tag: ToolTipText: Расположить центр вращения, указав его координаты X и Y. Visible: True Caption: Разделитель DescriptionText: ID: 266435b4-6e53-460f-9fa7-f45be187d400 Parameter: Tag: ToolTipText: Visible: True Caption: Отразить по горизонтали DescriptionText: Перевернуть объект слева направо. ID: e6644135-9dab-4935-8ab9-fc85527810ca Parameter: Tag: ToolTipText: Перевернуть объект слева направо. Visible: True Caption: Отразить по вертикали DescriptionText: Перевернуть объект сверху вниз. ID: 6ae897fd-2eab-4dad-b172-f4fb768c273e Parameter: Tag: ToolTipText: Перевернуть объект сверху вниз. Visible: True Caption: Разделитель DescriptionText: ID: 266435b4-6e53-460f-9fa7-f45be187d400 Parameter: Tag: ToolTipText: Visible: True Caption: Наклон DescriptionText: Наклонить объект по горизонтали или по вертикали, указав угол наклона. ID: 6655110e-ccd2-4020-a768-86a5d1b34136 Parameter: Tag: ToolTipText: Наклонить объект по горизонтали или по вертикали, указав угол наклона. Visible: True Caption: Разделитель DescriptionText: ID: 266435b4-6e53-460f-9fa7-f45be187d400 Parameter: Tag: ToolTipText: Visible: True Caption: Применение для дубликата DescriptionText: Применить преобразование к дубликату объекта. ID: e7cec14f-a6a9-424a-98d5-7137eeeb974f Parameter: Tag: ToolTipText: Применить преобразование к дубликату объекта. Visible: True Caption: Разделитель DescriptionText: ID: 266435b4-6e53-460f-9fa7-f45be187d400 Parameter: Tag: ToolTipText: Visible: True Caption: Относительно объекта DescriptionText: Применить преобразование в соответствии с позицией объекта, а не его координатами X и Y. ID: 249bae0e-dda5-489e-9c5f-ca0a3d53213c Parameter: Tag: ToolTipText: Применить преобразование в соответствии с позицией объекта, а не его координатами X и Y. Visible: True
0
|
|||||||
|
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
|
|
| 05.10.2017, 14:59 [ТС] | |
|
The trick - это именно то, что мне нужно!, но никак не смог запустить ни в VB6 ни в самом кореловском VBA - на все объявления выдаёт User-defined type not defined. Я понимаю, что такой уровень ламерности вообще выходит за все рамки, но может вы подскажете мне как мне это дело запустить.
0
|
|
|
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
|
|
| 05.10.2017, 16:20 | |
|
giaber, я ради любопытства тоже проверил код от The trick. На англоязычном 13-м Кореле все запустилось, правда, при этом создавался объект также установленного 16-го Корела с русскоязычными заголовками и ToolTip'ами. Вам всего лишь нужно в Reference подключить Кореловскую библиотеку с типом VGCore
Кстати, вы так и не ответили на мой вопрос
0
|
|
|
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
|
|||
| 05.10.2017, 23:26 [ТС] | |||
|
shark, извините меня, через 2-3 часа освобожусь, отвечу
Добавлено через 6 часов 20 минут
Но сильно урывками, занят сильно
Я по своему "стилю" работы в кореле часто использую 4 величины NudgeOffset - 1мм, 0,1мм, 0,01мм и 0,001мм, набирать каждый раз эти числа-лень. Ну вот я и захотел сделать четыре кнопки, которые будут устанавливать соответствующие величины NudgeOffset. Это несложно в варианте "для себя". Но потом я подумал, что многие выкладывают бесплатно достаточно сложные макросы, я ими пользуюсь, давай и я "отплачу добром" и сделаю макрос пусть и примитивный, но может кому понадобится. Отсюда и возникла проблема идентификации этого поля ввода NudgeOffset на "любом" компе. К тому же по размышлении я осознал, что у других пользователей могут быть свои "любимые" величины NudgeOffset. так что сейчас буду делать вариант, в котором можно "цеплять" на кнопки произвольные значения, и до следующего изменения пользователем при нажатии на конкретную кнопку в поле NudgeOffset будет устанавливаться назначенное этой кнопке значение. Вопросы встают дурацкие - к примеру, не могу решить - делать отдельное кнопки или выпадающее меню. Но всё это мелочи, главное -идентификация Edit-контрола на разных компах, да ещё чтоб работало и в 32битном и в 64битном варианте. А вы, shark, интересуетесь потому что вам тоже управление NudgeOffset-ом в работе в Кореле не помешало бы? Может есть какие интересные идеи с расширением функционала такого макроса? А то я в Кореле так же как и в программировании - фантастический ламер! ------------------- Подключил библиотеки - на CorelDRAW19 всё заработало (ну ещё бы! - The trick туфту не посоветует!) Завтра попытаюсь искать этим методом свой Edit-контрол
0
|
|||
|
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
|
||
| 06.10.2017, 09:55 | ||
|
0
|
||
|
101 / 38 / 0
Регистрация: 16.09.2014
Сообщений: 426
|
|
| 06.10.2017, 10:50 [ТС] | |
|
Ну, не спорно, конечно - у каждого свои привычки работы. Я пробовал так, как вы говорите - мне всё равно как-то слегка дискомфортно. Вообще-то и мне этот NudgeOffset не так чтобы очень уж нужен, но как-то втянулся и уже принципиально хочу добить. Начиная, думал что раз-раз и минут за 5-10 напишу макрос, а тут вона какие загогулины выскочили - нового много для меня!
0
|
|
|
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
|
|
| 06.10.2017, 11:00 | |
|
как вариант, можно еще перехватывать клавиатурные нажатия на стрелки через SetWindowsHookEx. Я так пробовал сделать выравнивание узлов через клавиши L, R.
0
|
|
| 06.10.2017, 11:00 | |
|
Помогаю со студенческими работами здесь
14
Нажать кнопку в чужом приложении Отлов сообщений в чужом приложении Нажатие на кнопку в чужом приложении Рисование в чужом полноэкранном приложении Нажатие кнопки в чужом приложении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|