Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Помогите с API Добавлено: 02.06.04 09:18  

Автор вопроса:  Malyav | Web-сайт: malyav.narod.ru | ICQ: 8440085 

Есть работающая программа с определеным интерфейсом, из которого надо получить различные надписи. Ранее я легко делал это с помощью API  зная hwnd окна.

Public Function GetText(wHwnd As Long) As String
Dim retval As Long
Dim TrimSpace As String
    retval = SendMessageByNum(wHwnd, WM_GETTEXTLENGTH, 0&, 0&)
    TrimSpace = Space$(retval)
    retval = SendMessageByString(wHwnd, WM_GETTEXT, retval + 1, TrimSpace)
    GetText = TrimSpace
End Function

Сейчас столкнулся с такой проблемой, что с помощью этого вижу все про нужное окно

Thread, TaskID, Hwnd, Class, ParentClass и Hwnd  кроме свойства Text . Проще говоря, я не могу узнать программно, что на этом окне написано.

Класс этого окна TPanel. Про TPanel есть информация тут http://scrooge.donetsk.ua/CHMHelp/SC_TAL/tPanel.htm

и там упоминается GetCaption. Тут, как я понимаю, надо иметь под рукой этот самый объект, инстанс класса TPanel. Только, как вот его захватить, если он находится в другой работающей программе. Или может есть другие, более продвинутые функции API для определения Text объектов класса NPanel?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 03.06.04 00:45
Поищи в прошлом форума... там это должно быть... LamerOnLine отвечал... там кажись что надо...

Хотя что тут надо лично мне понять сложно :(

Ответить

Номер ответа: 2
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #2
Добавлено: 03.06.04 05:10
 Скорее всего там содержится текст по другому адресу чем в стандартных контролах. И получить его можно используя его внутренние API.

Ответить

Номер ответа: 3
Автор ответа:
 Malyav



ICQ: 8440085 

Вопросов: 15
Ответов: 117
 Web-сайт: malyav.narod.ru
 Профиль | | #3
Добавлено: 03.06.04 09:39
Первый раз слышу про внутренние API. Что за такие? Где про них почитать можно?

Ответить

Номер ответа: 4
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #4
Добавлено: 05.06.04 17:11
 SendMessageByNum и SendMessageByString <- а вот этого делать не надо. Зачем мксорить? SendMessage она и в Африке SendMessage.
 
 retval = SendMessageByString(wHwnd, WM_GETTEXT, retval + 1, TrimSpace)
 Я думаю что у этого контрола есть свой аналог WM_GETTEXT. Какой нибудь TPanel_GETTEXT.
 К примеру сообщение WM_GETTEXT не возвращаяет текст для списков. Для него нужно использовать сообщение LB_GETTEXT. То есть текст получается не стандартным, а специфичным для контрола сообщением.
  Хотя и это может быть не верно. Потому как TPanel это средство отображение TTable, то и искать текст нужно в его списках.

 А вообще, лучше поспрашивай в форумах по Delphi. Здесь мало кто его знает.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам