powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBS обращение к объекту по названию
25 сообщений из 28, страница 1 из 2
VBS обращение к объекту по названию
    #38980928
Задача:
В некоем ПО найти и нажать кнопку "Привет, мир!".
Были попытки сделать клик мышью по абсолютным координатам, но этот вариант слишком ненадежен.
Подскажите пожалуйста, есть ли способ сделать нажатие левой кнопки мыши по кнопке, найдя ее по названию?
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38980947
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, но VBS тут не помощник.
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38980948
Бро, тебе AutoIt нужен?
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38980963
Не менее важная структура,

Видимо, нужен.
Придется изучать...
Спасибо
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38980993
Кстати, может WInAPI можно как-то использовать?
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38981015
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Важная бюрократическая структураЗадача:
В некоем ПО найти и нажать кнопку "Привет, мир!".
Были попытки сделать клик мышью по абсолютным координатам, но этот вариант слишком ненадежен.
Подскажите пожалуйста, есть ли способ сделать нажатие левой кнопки мыши по кнопке, найдя ее по названию?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Option Explicit
 
Function TestAdd(A, B)
TestAdd = A + B
End Function
 
Function TestSubstract(A, B)
TestSubstract = A - B
End Function
 
Sub Test(FuncName, K, N)
MsgBox Eval(FuncName & "(K, N)")
End Sub
 
 
Test "TestAdd", 100, 40        ' на экране 140
Test "TestSubstract", 100, 40  ' на экране 60
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38981042
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Важная бюрократическая структураКстати, может WInAPI можно как-то использовать?из VBS? только через com-оболочку. по интернету гуляют com-оболочки для WInAPI разной степени паршивости.
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38981817
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dynwrapx, одна из COM-оболочки, довольно удобная и глюков не замечал
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38981890
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyВажная бюрократическая структураКстати, может WInAPI можно как-то использовать?из VBS? только через com-оболочку. по интернету гуляют com-оболочки для WInAPI разной степени паршивости.

Интересно, а как вы структуры собираетесь передавать и получать в VBS? Каждая вторая WinAPI функция работает со структурами.
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982007
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltAntonariyпропущено...
из VBS? только через com-оболочку. по интернету гуляют com-оболочки для WInAPI разной степени паршивости.

Интересно, а как вы структуры собираетесь передавать и получать в VBS? Каждая вторая WinAPI функция работает со структурами.Через объекты аналогичной структуры, например.
Кроме того, я думаю, что с готовой структурой VBS работать сможет. Получить пустую структуру через функцию, заполнить, передать обратно.
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982027
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЧерез объекты аналогичной структуры, например.
Кроме того, я думаю, что с готовой структурой VBS работать сможет. Получить пустую структуру через функцию, заполнить, передать обратно.

VBS может работать со структурой, только если она описана в зарегеной .TLB библиотеке. А передавать указатель на нее, только через COM-враппер в котором есть VarPtr функция. Но это полная фигня, слишком много гемороя. Или таскать вместе со скриптом враппер и какую-нибудь здоровенную WinApiForVb.tlb, где есть почти все структуры для WinAPI. Все это регать перед запуском скрипта. Проще уж на VB6 программу написать.
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982060
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltПроще уж на VB6 программу написать.важные бюрократические структуры не ищут легких путей!
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982082
AntonariyEoltПроще уж на VB6 программу написать.важные бюрократические структуры не ищут легких путей!

Важные бюрократические структуры не представляют как это вообще можно осуществить, кроме как использовать программу, которая повторяет действия мыши...
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982102
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Важные бюрократические структуры нанимают подрядчиков ))
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982111
Shocker.ProВажные бюрократические структуры нанимают подрядчиков ))

Это когда бюджет не попилен еще.
Я понимаю, что все это выглядит глупо, но пока не вижу иного выхода как лазить по форумам и спрашивать знающих.
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982126
EoltVBS может работать со структурой, только если она описана в зарегеной .TLB библиотеке. А передавать указатель на нее, только через COM-враппер в котором есть VarPtr функция. Но это полная фигня, слишком много гемороя. Или таскать вместе со скриптом враппер и какую-нибудь здоровенную WinApiForVb.tlb, где есть почти все структуры для WinAPI. Все это регать перед запуском скрипта.Фу-фу-фу. Православный VBS-ный способ должен быть в формировании структуры как строки.
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982141
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Важная бюрократическая структураAntonariyпропущено...
важные бюрократические структуры не ищут легких путей!

Важные бюрократические структуры не представляют как это вообще можно осуществить, кроме как использовать программу, которая повторяет действия мыши...элементарно, если забыть про vbs.

1) найти процесс
2) найти по названию среди его окон верхнего уровня то, в котором находится искомая кнопка. кнопка же не бегает по разным окнам, всегда в одном месте?
3) найти среди его дочерних окон кнопку по названию. или еще каким уникальным признакам.
4) нажать
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982179
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не менее важная структураФу-фу-фу. Православный VBS-ный способ должен быть в формировании структуры как строки.

Чтобы сформировать структуру из байтового массива, нужно чтобы в языке была поддержка указателей и типов. Ни того, ни другого в VBS нет. Странно, что ты этого не понимаешь.
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982280
Eolt,

ты за деревьями лес потерял. Нужен способ записать/считать непрерывный участок памяти. Он есть, языковой (String, ChrW, AscW, Mid, &). Нужен способ вычисления адреса участка памяти (строки), вызова функции из dll, передачи ей/из неё параметров. Он есть, внеязыковой (COM-оболочка).

Странно, что ты этого не понимаешь.
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982409
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не менее важная структураEolt,

ты за деревьями лес потерял. Нужен способ записать/считать непрерывный участок памяти. Он есть, языковой (String, ChrW, AscW, Mid, &). Нужен способ вычисления адреса участка памяти (строки), вызова функции из dll, передачи ей/из неё параметров. Он есть, внеязыковой (COM-оболочка).

Странно, что ты этого не понимаешь.

http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1160829&msg=17759180
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982425
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltНе менее важная структураEolt,

ты за деревьями лес потерял. Нужен способ записать/считать непрерывный участок памяти. Он есть, языковой (String, ChrW, AscW, Mid, &). Нужен способ вычисления адреса участка памяти (строки), вызова функции из dll, передачи ей/из неё параметров. Он есть, внеязыковой (COM-оболочка).

Странно, что ты этого не понимаешь.

http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1160829&msg=17759180 ты правда не понимаешь.
со структурой можно работать как со строкой.
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982497
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EoltVBS может работать со структурой, только если она описана в зарегеной .TLB библиотеке
Не только. В своё время пробовал такой код:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim DX, St, pSt
Set DX = CreateObject("DynamicWrapperX") 'Создаём объект

St = DX.Space(8, "") 'Данный String - будет 16 байтовым буфером структуры
pSt = DX.StrPtr(St)

DX.Register "kernel32", "GetLocalTime", "i=l"
DX.GetLocalTime pSt 'Заполняем структуру вызовом API

'Читаем по 2 байта из указателя
MsgBox "Год: " & DX.NumGet(pSt, 0, "n") & vbCrLf & _
	   "Месяц: " & DX.NumGet(pSt, 2, "n") & vbCrLf & _
	   "День: " & DX.NumGet(pSt, 6, "n") & vbCrLf & _
	   "Часы: " & DX.NumGet(pSt, 8, "n") & vbCrLf & _
	   "Минуты: " & DX.NumGet(pSt, 10, "n") & vbCrLf & _
	   "Секунды: " & DX.NumGet(pSt, 12, "n"), vbInformation
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982507
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может и не красиво и не ТРУЪ, но 14 кб DLL решают проблемы, бесплатно и не сложно (относительно)
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982515
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyEolt http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1160829&msg=17759180 ты правда не понимаешь.
со структурой можно работать как со строкой.

Да со структурой можно работать как со строкой. бюрократическая структура просто переписал мой пост своими словами.
Но дело в том, что строк в VBS нет, есть VARINAT, а это значит что надо получить на него указатель, потом отсчитать смещение до BSTR bstrVal; и получить указатель на строку. Которая в VBS не массив байтов, а массив Unicode, и все функции VBS работают только с Unicode и всегда возвращают WORD, два байта на каждый строковый "символ". Соответственно, собрать бинарную ANSI строку в памяти средствами VBS нельзя. Нужен враппер и .TLB чтобы использовать готовые структуры.
...
Рейтинг: 0 / 0
VBS обращение к объекту по названию
    #38982520
Eolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD
Код: vbnet
1.
Set DX = CreateObject("DynamicWrapperX") 'Создаём объект



Опять воду в ступе...
То что враппер (или .TLB) может вернуть VARIANT с заполненным байтовым массивом содержащим структуру - это всем понятно.
А то что создать эту байтовую строку средствами VBSCRIPT - нельзя, похоже не всем.
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBS обращение к объекту по названию
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]