powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиметь данные из чужого приложения.
10 сообщений из 10, страница 1 из 1
Поиметь данные из чужого приложения.
    #36223659
Дмитрий П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здраствуйте!

Я работаю с приложением C-Link (Digitaltest, Германия) - программа по подготовке исходных данных для тестирования печатных плат.

Есть ли способ, чтобы я из своей программы на VB6 мог считать значение аттрибута "Name" в нижней части окна приложения C-Link (на скриншоте CLink.jpg это значение = "XSIG020045"). Clipboard в нижней части окна не работает.

Программа InqSoft Window Scanner на этом значении (и на всей нижней таблице) выдает Имя класса окна = "SysListView32", но само значение никаким способом не захватывает.

Подскажите направление решения этой задачи.

Подробности:
C-Link в том числе автоматически выдает список потенциально "опасных" пар цепей, которые надо проверить на отсутствие КЗ. Но ее критерии "опасных" пар далеки от реалей нашего производства, поэтому много цепей мне приходиться добавлять в список вручную. Я делаю это так:
1.Нахожу опасное место на "живой" плате.
2.Тыкаю в это место на изображении платы (в окне справа), тогда в нижней части окна, в аттрибуте Name выдается имя цепи, например XSIG020045.
3.Это имя я набираю вручную в текстовом файле.


Спасибо.
...
Рейтинг: 0 / 0
Поиметь данные из чужого приложения.
    #36224006
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LVM_GETITEM

Jah loves you.
...
Рейтинг: 0 / 0
Поиметь данные из чужого приложения.
    #36260642
Дмитрий П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По наводке Antonariy я создал пробную программу (проект во вложении). С внутренним списком (Microsoft Windows Controls 6.0) она работает, а со списком Nero 6.3.1.15 (класс SysListView32) дает ошибку "Инструция по адресу ... обратилась к памяти .... Память не может быть written".

Cначала с помощью мышки я определяю hWnd списка:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Sub picPoint2_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    PointMode = True
    dl& = SetCapture(Form1.hwnd)
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    Dim pt As POINTAPI

    If Not PointMode Then Exit Sub
    pt.x = x
    pt.y = y
    ClientToScreen Form1.hwnd, pt
    found_hWnd& = WindowFromPoint(pt.x, pt.y)
End Sub
Затем по кнопке cmGetText я читаю содержимое элемента списка под индексом №1:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub cmGetText_Click()
   objItem.mask = LVIF_TEXT
   objItem.iSubItem =  0 
   objItem.pszText = VarPtr(baBuffer( 0 ))
   objItem.cchTextMax = UBound(baBuffer)
   lngLength = SendMessage(found_hWnd, LVM_GETITEMTEXT,  1 , VarPtr(objItem))
   str = Left$(StrConv(baBuffer, vbUnicode), lngLength)
   MsgBox "item= " & str
End Sub
На форме я разместил список (Microsoft Windows Controls 6.0) - для проверки. Когда я мышку отпускаю на нем, то получаю содержимое элемента №1 списка. А если на списке (класс SysListView32) внешнего приложения (к примеру в Nero 6.3.1.15), то возникает ошибка "Инструция по адресу ... обратилась к памяти .... Память не может быть written".

Как заставить программу работать и в Nero?

Спасибо.
...
Рейтинг: 0 / 0
Поиметь данные из чужого приложения.
    #36260734
v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
v
Гость
Нужно выполнять код, который читает из списка в том же Windows процессе, где находится список (SysListView32).
Например, можно поместить код чтения списка в dll, а потом эту dll загрузить в тот процесс, где находится интересующий нас список SysListView32.
Могу написать более подробно, если нужно.
...
Рейтинг: 0 / 0
Поиметь данные из чужого приложения.
    #36260744
Дмитрий П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, напишите пожалуйста подробнее - никогда не работал в этом направлении
...
Рейтинг: 0 / 0
Поиметь данные из чужого приложения.
    #36262658
v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
v
Гость
вот пример
Dll, которая подгружается в процесс, сделана на c++. Код чтения ListView находится там же и его придется модифицировать для своих целей. Еще один exe содержит просто тестовый элемент управления ListView. Еще один exe содержит пример кода как использовать dll. Т.к. exe это только примеры, их можно делать на чем угодно.
...
Рейтинг: 0 / 0
Поиметь данные из чужого приложения.
    #36262842
Дмитрий П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощенься, но я совершенно не владею с++.

Может кто даст примерчик на VB6. Буду очень признателен.
...
Рейтинг: 0 / 0
Поиметь данные из чужого приложения.
    #36262886
v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
v
Гость
c++ можно не владеть, а использовать код, что есть, только откомпилить придется. А вызывать можно из любого языка. Просто, сейчас чтение выдает на экран данные, а в реальной программе надо добавить код, который сохраняет эти данные в файл (или еще куда-то), а программа, которой эти данные нужны, будет этот файл читать.
...
Рейтинг: 0 / 0
Поиметь данные из чужого приложения.
    #36262998
Дмитрий П.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так мне нечем откомпилировать с++ код - у меня голый VB6.0?
...
Рейтинг: 0 / 0
Поиметь данные из чужого приложения.
    #36264155
v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
v
Гость
vb6 входит в состав Visual Studio 6, где все есть. Можно просто скачать с Microsoft новейшую студию, причем официально бесплатно, называется Visual Studio Expresss. Правда, не уверен, есть ли в Express версии C++, может в ней есть только новые языки C# VB.NET. Можно купить в любом киоске, где софт продают.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиметь данные из чужого приложения.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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