powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Анализ интерфейса программы
34 сообщений из 34, показаны все 2 страниц
Анализ интерфейса программы
    #38689173
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Такая задача. Есть программа 2002 года от Microsoft. Интерфейс очень неудобный. С помощью resource hacker я расширил диалоговые окна и стало удобнее работать. Правда есть места, которые я не нашел ни в ДЛЛ ни в ЕХЕ с помощью resource hacker. Есть ли какие-нибудь программы, которые могут дать какие-либо сведения об интерфейсе запущенной программы. Хочу конкретно в элементе "дерево" сделать поиск по этому дереву, так как его нет. Видел статью на хакере как склеить 2 исполняемых файла. Идея появилась написать новый ЕХЕ который будет в запущенной программе запускать новое окошко поиска и шагать по дереву. Может кто толкнет дальше, куда копать?
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38689190
posledniy-ptr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly, Ну так элементы интерфейса могут создаваться динамически, кодом.
Имхо тут уже надо быть гуру ассемблера с хексредактором наперевес. Тем более чтобы добавить туда поиск.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38689248
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
posledniy-ptr,

Очень давно была у меня прога, которая позволяла мышкой тупо кликнуть по элементу другой проги, и получить информацию. Точно помню мне писалось что-то типа TEdit из моих дельфовых EXEшников, но увы не помню уже и названия. Еще пример всякие анлокеры или показыватели паролей, которые при наведение на инпут вместо **** показывают текст.

Вот и хочу хотя бы свою отдельную прогу сделать, которая при наведение на дерево основной проги по нему пробежалась и встала на нужный элемент.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38689262
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyМожет кто толкнет дальше, куда копать?
Найти хендл дерева и изучать справку на предмет, что с ним можно сделать: http://msdn.microsoft.com/en-us/library/windows/desktop/bb759988(v=vs.85).aspx

P.S. И надеяться, что контрол нативный, а не самописный.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38689265
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Так вот. Как мне извне этот хэндл получить? Опыт более менее есть только в делфи, visual FOXPRO. Думаю делфи больше в этом поможет.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38689274
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly,

Spy++ пробовал?
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38689280
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyКак мне извне этот хэндл получить?
EnumWindows
EnumChildWindows

Spy++ подскажет путь для поиска.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38689718
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly,

FindWindow, FindWindowEx. Работать с деревом через SendMessage. Кнопку можно псевдоприцепить к окну "дочерней программы" через SetParent
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38690325
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly,

добрый совет тебе: брось это дело.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38690365
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvik,

Я так понял это приблуда Visual studio ? В наличие у меня только express версии 2008 / 2012, они подойдут?

VSVLAD,

Можно поподробнее, это где вызывать?

MasterZiv,

Для меня это спортивный интерес. Бывает немного минут появляется в наличие, и пытаюсь сделать что-нибудь эдакое.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38690420
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потратьте свой спортивный интерес на чтение документации. В частности, на ограничения Express-версий.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38690729
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почти получилось. Получил хэндл элемента. Это оказался ListBox. Но вот как с ним теперь работать?
Написал прогу на visual basic
посылаю
Call SendMessage(wnd, WM_SETTEXT, 0, "Test")
В инспекторе (вместо spy++ скачал Winspector) вижу новое свойство у него. Но как перебрать все элементы, да еще после этого выбрать нужный?
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38690738
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyCall SendMessage(wnd, WM_SETTEXT, 0, "Test")
MSDN вообще полезная штука. Позволяет сэкономить кучу времени на ожидании ответов: http://msdn.microsoft.com/ru-RU/library/windows/desktop/bb775146(v=vs.85).aspx
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38690759
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Вот. Я как раз сам до него дошел. Теперь напоролся на. У меня есть сообщение LB_FINDSTRING message, а на вход ему надо Long, то есть число. Как можно конвертнуть?
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38690810
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторA pointer to the null-terminated string that contains the string for which to search. The search is case independent, so this string can contain any combination of uppercase and lowercase letters.

Зачем конвертировать? Pointer и есть число (порядковый номер ячейки памяти).
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38690842
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyВот. Я как раз сам до него дошел. Теперь напоролся на. У меня есть сообщение LB_FINDSTRING message, а на вход ему надо Long, то есть число. Как можно конвертнуть?
Даже отвечать не хочется. Ты решил заняться матаном и решать матрицы с многомерными интегралами
но вдруг (внезапно!) оказалось что не умеешь умножать числа в столбик.

От такой тоски и печали меня охватывает грусть и уныние за весь new generation...
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38690847
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Объявление
Код: vbnet
1.
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As String) As Long


2-й параметр ByVal wMsg As Long - число. А в хелпе написано LB_FINDSTRING.

Или я что-то не так понял ? ?(

Вот пример заполнения текста
Код: vbnet
1.
Сall SendMessage(wnd, WM_SETTEXT, 0, "Test2") 'изменяем текст в текст боксе на "Привет"


Здесь WM_SETTEXT объявляется в начале кода.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38690881
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly2-й параметр ByVal wMsg As Long - число. А в хелпе написано LB_FINDSTRING.
И? Не понимаю, в чем проблема?
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691119
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

У меня не объявлен LB_FINDSTRING. На сколько я помню надо подключать файл с объявлениями, у меня его нет, наверное. Нашел на одном сайте объявление LB_FINDSTRING, но message стал возвращать очень большое число, вместо ожидаемого 12 (номер искомого элемента), возможно там задан LB_FINDSTRING неверно.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691420
_Дмит_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Public Const LB_FINDSTRING = &H18F
такие вещи не на сайтах ищут, а к примеру - API Viewer. Или типа такого наверно есть для делфи.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691422
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly, LB_FINDSTRING = 399, возвращает либо индекс искомой строки, либо -1, если не найдено.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691463
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю
MsgBox(SendMessage(wnd, LB_FINDSTRING, -1, ""))
Показывает всегда 4294967295, при любых значениях 4-го параметра.
Увы в visual studio не нашел API viewer :( приходится рыть в инете.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691471
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyПоказывает всегда 4294967295, при любых значениях 4-го параметра.
Это -1.
GustlyУвы в visual studio не нашел API viewer :( приходится рыть в инете.
Это там все имеется. Может стоит обратиться к программисту?
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691490
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Обижаете.

Я и есть программист, только другого направления. И вижу visual studio вместе с visual basic 2-й день.
Для себя нашел
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691491
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C:\Program Files (x86)\Windows Kits\8.0\Include\um\WinUser.h
Тут есть все константы.

А вот с поиском пока не разобрался, почему -1 там.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691499
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyMsgBox(SendMessage(wnd, LB_FINDSTRING, -1, ""))
Вместо -1 нужно указывать 0. Т.к. -1 - это максимальное значение для числа без знака. Что оно там найдет, если начнет искать в самом конце (которого при чем и не существует)?
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691502
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Инфу брал отсюда
http://msdn.microsoft.com/en-us/library/windows/desktop/bb775187(v=vs.85).aspx
If wParam is –1, the entire list box is searched from the beginning

Но с 0 тот же результат.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691511
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда даже и не знаю, что там не так... там точно listbox? Вроде первая версия для дерево была.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691519
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

У меня получается шагать по нему через LB_SETCURSEL и получаю верное значение через LB_GETCOUNT
А вот MsgBox(SendMessage(wnd, LB_GETTEXT, 14, st))
Показывает "frame_te" вместо реального "frame_templates"
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691535
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyА вот MsgBox(SendMessage(wnd, LB_GETTEXT, 14, st))
Показывает "frame_te" вместо реального "frame_templates"
Потому что нужно выделять память для возвращаемого параметра или устанавливать длину строки, к примеру в 255.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691540
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Сначала была вообще пустота. Затем я предварительно в переменную запихнул длинную строку в 40+ символов. Обрезает до 8 после мессаги.
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691546
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ключевые слова для поиска: https://www.google.ru/webhp?q=c lb_gettext example
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38691785
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наконец попробовал сделать тоже самое в своем окне. Возвращает все нормально.

В нужной проге
Код: vbnet
1.
2.
3.
Dim V$ = Space(99)
MsgBox(SendMessage(wnd, LB_GETTEXT, 15, V))
MsgBox("$" + V + "$")



2-е окно выдает $ + 8 символов + непонятный символ. Замыкающего $ нет.
Есть идеи?
...
Рейтинг: 0 / 0
Анализ интерфейса программы
    #38692110
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyMasterZiv,

Для меня это спортивный интерес. Бывает немного минут появляется в наличие, и пытаюсь сделать что-нибудь эдакое.

Аааа !!!
Ты мне свой e-mail скинь, я буду тебе подкидывать задачки, ради спортивного интереса. :-)
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Анализ интерфейса программы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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