Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Здравсвуйте! Возникла такая сложность, не могу определить ID и caption,class,instance кнопки в программе 3DMax. Пробовал программы Control viewer, winspy++,AutoIt Window Info (x86). Ничего не находит, понятнее будет по скриншотам.
Находится как общий элемент - AdImpApplicationFrame. Хочу сделать помощник для программы, так как многие не знают английский, а в основном все уроки на английском, то хочу сделать так, человек наводит мышкой на кнопку, а ему сразу ее перевод + описание, что делает, если описание обширное, то откроется сайт с документацией.. ну что то в этом роде... Часть кнопок не в этом элементе находит, а вот те что вверху , не находит...
InnI
Благодарю. Что то нашло. Только она все время обновляет списки свои, потом бывает зависает.....
Добавлено:
Сообщение автоматически объединено:
InnI
Разобрался, я постоянно тыкал, а хватает только навестись. Если не затруднит, пожалуйста направь меня.. Как в чужой программе определить элемент под мышкой..? Давно не заходил в автоит, что то подзабылось все(
InnI
Нажимаю f1 на той панеле, на разных кнопках, всегда выходит Name: AdImpApplicationFrame Value: - пустое
А на которых обычными программами узнавал, то вообще и имя и значение , пустые. InnI
Очень буду благодарен и благодарен уже за твою неоценимую помощь! Я к сожалению сейчас очень загружен. Делаю программу по йоге, самоучитель в анреал енжин 4, учу 3д макс, фотошоп и так далее, как жаль что день такой короткий и на AutoIt меньше сейчас времени чем раньше, поэтому очень буду признателен за помощь!
.............
Вот скрин
Добавлено:
Сообщение автоматически объединено:
Вот что видит инспект.
Добавлено:
Сообщение автоматически объединено:
InnI
Если к примеру навестись на Едит - то его Испектор определяет как AdImpApplicationsFrame, а если нажать на Едит и навестись на список, то его определяет как контекстное меню.
Добавлено:
Сообщение автоматически объединено:
InnI
При наведении на Едит , Тулс, Груп, инспектор вообще их не находит, а только подсвечивает AdImpApplicationsFrame. то есть я их в списке в ручную там не нашел..
smsgeorge
На панели Inspect нажмите кнопку с жёлтой рамкой - текущий элемент будет подсвечиваться. Наведите курсор мыши на панель меню 3dMax. Если подсветилась вся панель, то попробуйте найти пункты меню непосредственно в дереве Inspect. Если их там нет (ветвь панели не раскрывается), то, вероятно, пункты на панели просто нарисованы и не являются элементами.
К сожалению определяет не везде , но Инспектор эти участки подсвечивает, Как сделать, чтобы ваш код, определял полностью эти элементы? То есть hwnd же будет меняться каждый раз, нужно получить возможно класс или что для проверки? а также саму проверку и тогда все легко. а панель верхнюю, можно с помощь костылей сделать.
Добавлено:
Сообщение автоматически объединено:
InnI
Control Viewer - показывает эти кнопки, как его поиск использовать в своих целях? То есть она показывает class, instance, Id, Text, по сути этого хватит..
smsgeorge
Inspect использует специальную технологию - интерфейс UI Automation. Если разработчик не обеспечит поддержку данного интерфейса в своей программе, то доступа к элементам с использованием этой технологии не будет.
определяет не везде, но Инспектор эти участки подсвечивает
Если бы не определял, то выводил бы ошибку. Просто эти значения пустые.
Inspect подсвечивает границу элемента. Теперь посмотрите, какие он определяет значения Name и Value для этого элемента. Такие элементы, как кнопки панели, часто не имеют имён, а отличаются, например, по порядковому номеру. Сравнивайте информацию Inspect и ищите различия.
InnI
Дорогой InnI , расскажи поподробнее пожалуйста - Так же, как и поиск AutoIt Window Info - подставлять в функции и получать результат... Как твоей программой через код, найти class, instance, Id, Text. А с помощью Control Viewer я бы вытащил значения.. У тебя предоставлены функции по поиску и так далее, но как использовать код Yashied я не понимаю, голова кипит(
Добавлено:
Сообщение автоматически объединено:
Даже не могу запустить)
Добавлено:
Сообщение автоматически объединено:
Скачал по новой, добавил в новую папку и все равно ошибка... перегруз :stars:, мне кажется, я вообще делаю что то не то...
Это заметно. Я мало что понял в вашем потоке сознания. Думаю вам нужно хотя бы немного отдохнуть.
Элементы графического интерфейса делятся на стандартные и остальные. Стандартные - это элементы, созданные стандартными средствами Windows. С этими элементами AutoIt работает, как "с родными", при помощи встроенных функций и прилагаемых UDF. Эти же элементы AutoIt Window Info и Control Viewer легко определяют, т.к. тоже используют стандартные функции. Другие, нестандартные элементы, придумывают разработчики. Если они сделаны на базе стандартных, то с ними можно общаться стандартными средствами. С некоторыми - через интерфейс UIAutomation, если разработчик об этом побеспокоился. У нестандартных элементов часто нет ни class, ни id, ни handle, ни других, специфичных для стандартных элементов, свойств. Поэтому, если вы что-то нашли при помощи Control Viewer, то лучше использовать стандартные функции. Если через Inspect, то функции UIAutomate (хотя я сомневаюсь, что Control Viewer нашёл что-то, чего не видит Inspect).
Ещё раз повторяю. CLASS:CustButton - это нестандартная кнопка. И как она обрабатывает сообщения знают одни разработчики. Часто нарисованные интерфейсы пытаются определить реальное положение курсора мыши и тогда уже разбираются, над какой кнопкой он находится и что нужно делать. Попробуйте MouseClick(). Или предварительно расположите курсор над кнопкой.
Честно вам скажу - нет у меня желания качать и устанавливать этого монстра только для того, чтобы в кнопках поковыряться.
InnI
жаль что не желания) Но понимаю вас, у вас очень большая загруженность! Да и если не так, тоже понимаю.. Просто кроме вас вообще никто мне не пишет. Я хотел сделать благо для других и для себя, так как сам столкнулся с английским 3дмаксом и не знанием английского.. Если не разберусь, а разбираюсь только вашей подачей информации, то буду делать, не рабочую копию 3дмакса, а с оболочкой гуи, и там уже можно будет посмотреть перевод, но к сожалению так менее удобнее, так как придется сворачивать саму программу и смотреть искать там уже. Вообще InnI - огромная благодарность тебе за твою громадную отзывчивость! Вдруг не прочел сообщение выше твоего.. там пример 2 программ, не нашел в твоей инстанс...
Instance - это специальное свойство в AutoIt. Порядковый номер элемента, полученный при перечислении всех элементов с заданными свойствами. Например, находим все элементы с классом Button. Теперь первый по порядку будет иметь instance 1, второй - 2 и т.д. Inspect подобного подсчёта не ведёт, поэтому и не отображает. В UDF UIAutomate за "instance" отвечает функция _UIA_FindAllElements(), номер элемента массива которой и будет instance элемента-объекта.
Добавлено:
Сообщение автоматически объединено:
И, кстати, Inspect - это произведение Microsoft. А "моя" вот эта: wInformer.