|
Позднее связывание
|
|||
---|---|---|---|
#18+
Прошу помочь с поздним связыванием UIAutomation UIAutomationClient C:\WINDOWS\system32\uiautomationcore.dll В референсах все подключить то работает... Код: vbnet 1. 2. 3. 4.
И главное где посмотреть что написать вместо CreateObject("ИМЯ_БИБЛ.КЛАСС") Код: vbnet 1. 2. 3. 4.
затупил, выручайте! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 10:07 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
FeelYouИ главное где посмотреть что написать вместо CreateObject("ИМЯ_БИБЛ.КЛАСС")реестр - HKEY_CLASSES_ROOT. Но бывает есть только clsid. ИМХО, позднее связывание отсутствует, могу ошибаться. Описанной библиотекой не пользуюсь, проблемы с некоторыми методами, например ElementFromPoint . Тестировал найденную на просторах инета библиотеку типов. Можно класть рядом и использовать раннее связывание. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 10:59 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
Панургнайденную на просторах инета библиотеку типов ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 11:03 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
FeelYouПрошу помочь с поздним связыванием UIAutomation похоже тут без шансов ... https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/abf7dae4-63da-48d6-8218-fc77b0b878ac/late-binding-cuiautomation-in-vba-or-vbscript?forum=windowsaccessibilityandautomation I don't believe it's possible to call UIA objects from script, due to the lack of support for IDispatch by UIA. A related discussion is at http://social.msdn.microsoft.com/Forums/en-US/windowsaccessibilityandautomation/thread/a10c5093-7777-43dd-aebc-a93925e8caf4. http://social.msdn.microsoft.com/Forums/en-US/windowsaccessibilityandautomation/thread/a10c5093-7777-43dd-aebc-a93925e8caf4 I'm afraid there isn't a way to use it from VB Script. The new UIA COM API introduced in Windows 7 is usable from C++ clients and .NET clients (through COM interop), but the older IDispatch technology that VB script needs isn't implemented . We focused on the highest traffic interfaces: native C++ and .NET. The only solution I can picture would be to build an IDispatch-compatible COM DLL, perhaps using ATL, that would take calls from your VB script and then call through to UIA. You wouldn't have to replicate the whole UIA API -- only as much as you were using. But this is still hard work. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 11:04 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
Панург, чертовщина именно в реестре и смотрел по uiautomationcore.dll есть и clsid и имя - UIAutomationClient, странно - обычный активикс вроде уж очень удобная библиотека для доступа к элементам программ на .NET у которых нет окна ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 11:07 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
court, спасибо огромное, а то я уж начал думать, что совсем заработался.. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 11:11 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
FeelYouименно в реестре и смотрел по uiautomationcore.dll есть и clsid и имя - UIAutomationClient, странно - обычный активикс вродеВ реестре не описан класс CUIAutomation. Можно создать по UUID-у: Код: vbnet 1. 2.
, но толку не будет никакого, поскольку Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
- нет атрибута oleautomation и Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
интерфейс наследуеЦЦа не от IDispatch, то есть нельзя написать Код: vbnet 1.
(можно, но выполнение Set вызовет ошибку). Собс-но, об этом уже написали. А для того, чтобы понимать, что делать дальше и куды бечь, неплохо бы сформулировать хотелкиТЗ, включая ограничения (например, только VBA, только 32-битный, без использования в проекте сторонних библиотек типов и т. п.). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 11:56 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
ЦЦа, если не трудно хотелось бы посмотреть реализацию ЦЦатолько VBA Панургс некоторыми методами, например ElementFromPoint . ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 12:03 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
FeelYou, а почему возникла необходимость в позднем связывании? Отваливается ссылка на разных платформах? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 13:07 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
ПанургЦЦа, если не трудно хотелось бы посмотреть реализацию ЦЦатолько VBA Панургс некоторыми методами, например ElementFromPoint .Ы. Плохо написал. Под "только VBA" подразумевалось: "применимо в VBA, но не переносимо на VBS". Под эту же категорию попадает решение VBA+ссылка на библиотеку типов. Тем не менее. Видимо, ты ожидаешь "только VBA без сторонних библиотек", и это можно сделать (хм, если вставки в машинных кодах считаюЦЦа за "только VBA"). Поскольку мы можем получить ссылку на корневой COM-объект с интерфейсом IUIAutomation ( Код: vbnet 1. 2.
), мы имеем доступ к таблице виртуальных методов (vtbl) экземпляра COM-объекта и, имея описание интерфейса (номера в vtbl и сигнатуры) его методов из IDL, сгенерированного из библиотеки типов, можем дёргать (привет, радость вызова функции по адресу из VBA!) методы объекта. Пример здесь , в нём реализуюЦЦа вызовы для некоторых методов интерфейсов IDataObject и IStream. Нужная инфраструктура (для VBA 32-битного) в том примере вроде есть, справишься (вроде для тебя не должно быть сложно)? Но у меня есть вопрос (экзистенциальный) - азанахуа? Не являеЦЦа ли энтот UIAutomation обёрткой над IAccessible, и не проще ли сделать ссылку на объектную библиотеку Офиса, где IAccessible в адаптированном для VBA виде прекрасно, хоть и скрытно, живёт? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 13:14 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
ЦЦаПод эту же категорию попадает решение VBA+ссылка на библиотеку типов.такое есть, см выше. 21816082 ЦЦаНе являеЦЦа ли энтот UIAutomation обёрткой над IAccessible являеЦЦа. Проблема получить объект под курсором, когда он не совсем верхний. Например достучаться до контрола в субформе. Просто на форме - проблем нет, с помощью функции AccessibleObjectFromPoint А вот с помощью IUIAutomation легко. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 14:09 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
ПанургЦЦаПод эту же категорию попадает решение VBA+ссылка на библиотеку типов.такое есть, см выше. 21816082 То есть варианты с библиотекой типов в виде ресурса в исполняемом модуле, либо (того же ресурса, извлечённого из исполняемого модуля) в виде отдельного файла, не рассматриваюЦЦа как решения? OK. Тогда ломимся через vtbl, как описал. ПанургЦЦаНе являеЦЦа ли энтот UIAutomation обёрткой над IAccessible являеЦЦа. Проблема получить объект под курсором, когда он не совсем верхний. Например достучаться до контрола в субформе. Просто на форме - проблем нет, с помощью функции AccessibleObjectFromPoint А вот с помощью IUIAutomation легко.Основной метод получения элементов (не забываем, что IAccessible делался для альтернативных методов вывода информации (например, программа-рассказчик) для людей с ограниченными сенсорными возможностями; ясно, что такая программа не должна долбить каждый пиксель через AccessibleObjectFromPoint()) всё-таки методы навигации. Есть подтверждение, что IAccessible.accNavigate() не достукиваеЦЦа до контрола в субформе? Я не "топлю" за IAccessible, но хочеЦЦа знать, даёт ли UIAutomation какие-то конкретные преимущества, и, если да, в каких ситуациях? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 16:02 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, есть машины на которых вертится XP/Server 2003 и довольно шустро хочу заметить, поэтому буду пробовать библиотеку из вложения Панурга. UIAutomation не похожа на обертку IAccessible судя по документации, просто очень удобно дерево построено и обход по нему, при этом AccessibleObjectFromPoint ни разу не довелось использовать, обходился Код: vbnet 1. 2. 3.
Но можно и через MSAA, а она увидит не-оконные элементы .NET? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 17:12 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
ЦЦаЯ не "топлю" за IAccessible, но хочеЦЦа знать, даёт ли UIAutomation какие-то конкретные преимущества, и, если да, в каких ситуациях?Сам себе и отвечаю: Сравнение MS Active Accessibility и UI Automation Утилита Inspect, позволяющая, в том числе, почувствовать разницу Поддержка UI Automation в разных Windows ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 18:53 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
ЦЦа, я уж обрадовался https://support.microsoft.com/ru-ru/help/971513/description-of-the-windows-automation-api отдельный компонент можно поставить для экспишки, хоть он и не доступен для скачивания может обойдется установкой дотнет 3.0? сейчас стоит 2.5 в референсах нет UIA пойду пробовать, всем еще раз благодарности за помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2019, 19:23 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
ЦЦаЕсть подтверждение, что IAccessible.accNavigate() не достукиваеЦЦа до контрола в субформе?Вроде пробовал, но признал неудобным, точные результаты не помню, давно это было. UIAutomation оказалось удобней в данной ситуации. ЦЦа Утилита Inspect, позволяющая, в том числе, почувствовать разницу Ну какбэ этим инструментом и пользовался для рассматривания что где и как. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2019, 05:43 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
FeelYou, а ты для чего используешь? Так сказать в порядке деления опытом (вдрух это интересно, а я и не знаю!), коротенько. Можно и с примерами. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2019, 05:46 |
|
Позднее связывание
|
|||
---|---|---|---|
#18+
Панург, для ХР компонент 971513 отдельно нашелся в КЦО, все работает Применение неспецифическое, спрятать/показать объект в сторонней программе (теперь вижу, что через MSAA тоже можно было достучаться), конкретно сейчас доступ к программе автораспознавания номеров Автомаршалл на проходной. У дорогих редакций есть API, конкретно в этой на 2 камеры ничего нет. Можно в принипе слушать порт, номер кодируется в формат виганд плюс направление выезда + еще что-то неразобрал, только проще и удобнее смотреть строку состояния в которой все написано черным по серому. Раньше как то обходился FindWindowEx, но одельные блоки в статусной строке не имеют хендлов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2019, 09:03 |
|
|
start [/forum/topic.php?fid=45&msg=39777128&tid=1610830]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 311ms |
total: | 433ms |
0 / 0 |