Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как получить содержимое Label из другого приложения? / 9 сообщений из 9, страница 1 из 1
28.01.2008, 17:36
    #35092667
awl100Alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить содержимое Label из другого приложения?
Есть такой откомпилированный в EXE код:

Private Sub Form_Load()
Timer1.Interval = 100
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Static count
count = count + 1
Label1.Caption = count
End Sub

Нужно программно получить содержимое Label1.Caption из другого(!) приложения. Подскажите, пожалуйста, как можно это реализовать???
...
Рейтинг: 0 / 0
28.01.2008, 18:53
    #35092943
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить содержимое Label из другого приложения?
> Нужно программно получить содержимое Label1.Caption из другого(!)
> приложения. Подскажите, пожалуйста, как можно это реализовать???

FindWindow, GetWindowText тебе помогут

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
28.01.2008, 19:54
    #35093058
awl100Alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить содержимое Label из другого приложения?
Все не так просто, как кажется... :((

Функциям FindWindow, GetWindowText нужно указывать хэндл элемента Label, или хотя бы имя класса. Но вопрос в том, как его получить???

Нашел такую информацию, что есть два типа Label – статические и динамические. Значения динамических Label получить вроде как можно через ID. Но как именно?!!
Статические Label компилятор просто «рисует» на форме и все... Получить их значения не представляется возможным. :(( Разве что как-то через API функцию GetPixel – выполнять распознавание, как в FineReader’e. :((

Но в данном случаи, меня интересуют значения динамических Label! Может, кто знает, как получать их ID?! Если можно, пример кода...

Коды такого типа НЕ работают!Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Sub Form_Load()
Dim h As Long, hText As Long
h = FindWindow(vbNullString, ByVal "Form1")
hText = FindWindowEx(h, 0, vbNullString, ByVal "Label1")
MsgBox hText
'h = FindWindow(vbNullString, ByVal "ИМЯ_ФОРМЫ")
'hText = FindWindowEx(h, 0, vbNullString, ByVal "ИМЯ_ТЕКСТОВОГО_ЭЛЕМЕНТА")
End Sub
...
Рейтинг: 0 / 0
29.01.2008, 11:34
    #35094064
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить содержимое Label из другого приложения?
Label это рисунок, а не окно, у него нет hwnd, получить его значение можно только распознав картинку. Всякие ID - от лукавого.
...
Рейтинг: 0 / 0
29.01.2008, 12:27
    #35094301
awl100Alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить содержимое Label из другого приложения?
Хорошо...
Ну, а если подойти к решению этого вопроса с другой стороны... Как говорится: если Магомед не идет к «Label», то может «Label» придет к Магомеду??! ;)

Если я правильно понимаю: прежде чем содержимое Label будет нарисовано на форме, оно сначала будет «нарисовано» в памяти компа, в цифровом виде, а уже потом переведено в граф. адаптер для "рисования"... Значит, если правильно прочесть эти данные прямо из памяти, то таким образом, можно будет получить их значения.

Как это можно сделать?
Я так понимаю, нужна грамотная манипуляция функциями типа: FindWindow, VarPtr, StrPtr, ObjPtr, GetProcAddress, CopyMemory...

Кто-нибудь знает КАК??..
...
Рейтинг: 0 / 0
29.01.2008, 13:21
    #35094550
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить содержимое Label из другого приложения?
*Ptrы точно не помогут, но в целом мысль правильная, хотя и связанная с немыслимым гемороем. Задай этот вопрос на vbstreets.ru, там есть специалисты по этому вопросу.
...
Рейтинг: 0 / 0
29.01.2008, 14:25
    #35094815
awl100Alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить содержимое Label из другого приложения?
Ладно... попробую...
Если ответ будет, то дам ссылку здесь.
...
Рейтинг: 0 / 0
29.01.2008, 14:28
    #35094823
awl100Alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить содержимое Label из другого приложения?
Ладно... попробую...
Если ответ будет, то дам ссылку здесь.
...
Рейтинг: 0 / 0
31.01.2008, 20:12
    #35102065
awl100Alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить содержимое Label из другого приложения?
Продолжение этой темы ищите на сайте: http://bbs.vbstreets.ru/
Тема одноименная! Прямая ссылка:
http://bbs.vbstreets.ru/viewtopic.php?t=35701&start=0
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как получить содержимое Label из другого приложения? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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