dwa83
13.06.2012, 19:43
[Значения могли измениться/сместиться]
Возможно кому-нибудь будет полезно. Оффсеты указаны для руофа, для других могут отличаться.
Структура GUI
GA+18+08
(GUI+...)
+8C - указатель на начало массива окон верхнего уровня(WIN)
+АС - указатель на начало массива окон нижнего уровня(WIN)
+74 - указатель на структуру активного окна(WinStruct)
Основные поля структуры элемента массива окон (WIN+...)
+0 NextWin(указатель на следующий элемент массива)
+8 WinStruct(указатель на структуру окна)
Основные поля структуры окна (WinStruct+...)
+4C - WinName(указатель на строку-имя окна)
+90 - Visible(Видимое окно)
+98 - Win X Coord
+9C - Win Y Coord
+A0 - Win Width
+A4 - Win Height
+E8 - CurrentControlStructPtr(указатель на cтруктуру активного контрола)
+1C8 - CtrlArray(указатель на начало массива контролов окна)
Структура элемента в массиве контролов
+4 - указатель на следующий контрол в массиве
+8 - указатель на структуру контрола (CtrlStruct)
Структура контрола (CtrlStruct+...)
+18+0 - Ctrl_Name (ascii string)
+1C+0 - Ctrl_Command_Txt (ascii string) - Команда контрола
+20+0 - Ctrl_Sound_Path (ascii string) - Звук, проигрываемый при клике по контролу
+68 - BGR-цвет текста(цвет EditText)(DWORD)
+74(?) - Чекнутость переключателя типа RadioButton.
+84 - Левый отступ текста в пикселях от границы окна.
+88 - Верхний отступ текста в пикселях от границы окна.
+B8+0 - Caption (unicode string)
+BC+0 - Description (unicode string) полное описание предметов, скиллов, и тд, текст вплывающего описания любого контрола
+121 - Checked/Active (bool)
+134 - Верхний отступ текста в пикселях от границы контрола.
+13C - ItemIndex (номер выделенной строчки в листбоксе, отсчёт от нуля)
+144 - ScrollBarPosition(Значения от 0 до ScrolBarMaxPosition)
+148 - ScrolBarMaxPosition
+188 - EditTextLen(DWORD) (ограничивает передвижение курсора но не отрисовку текста)
+18С - Положение курсора в тексте EditText
+13FC+0 - EditText (unicode string) - Редактируемый текст в контроле типа Edit(поле ввода логина, пароля, строки чата)
Отдельное спасибо krukovis, за разьяснение ключевых оффсетов.
Некоторые замечания:
1)Прописав по оффсету +E8 - CurrentControlPointer(указатель на активный контрол) адрес нужного нам контрола, мы сделаем его активным, например поле ввода для логина/пароля. Далее ввод символов будет происходить именно в нём.
2)Прописав по оффсету +13FC(если контрол подразумевает ввод символов) адрес заготовленной нами строки текста, этот текст мгновенно появится в поле ввода. Так же работает со оффсетом +B8 (указатель на строку Caption), этим мы будем менять надписи на Button, Label и прочих.
3)Указатель на строку +1C+0 - Ctrl_Command_Txt, а так же указатель WinStruct на структуру окна, в котором этот контрол находится, мы можем передать в функцию работы с GUI, этим мы програмно будем например, жать на кнопки.
В ЭТОЙ ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) теме выложена функция, с помощью которой можно программно выполнать команды GUI, используя оффсеты
+8 WinStruct(указатель на структуру окна) Адрес начала структуры окна
+1C - указатель на Ctrl_Command_Txt (ascii string) - Адрес текстовой команды контрола
Дополнительно:
тык ([Ссылки могут видеть только зарегистрированные и активированные пользователи])|тык ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
Возможно кому-нибудь будет полезно. Оффсеты указаны для руофа, для других могут отличаться.
Структура GUI
GA+18+08
(GUI+...)
+8C - указатель на начало массива окон верхнего уровня(WIN)
+АС - указатель на начало массива окон нижнего уровня(WIN)
+74 - указатель на структуру активного окна(WinStruct)
Основные поля структуры элемента массива окон (WIN+...)
+0 NextWin(указатель на следующий элемент массива)
+8 WinStruct(указатель на структуру окна)
Основные поля структуры окна (WinStruct+...)
+4C - WinName(указатель на строку-имя окна)
+90 - Visible(Видимое окно)
+98 - Win X Coord
+9C - Win Y Coord
+A0 - Win Width
+A4 - Win Height
+E8 - CurrentControlStructPtr(указатель на cтруктуру активного контрола)
+1C8 - CtrlArray(указатель на начало массива контролов окна)
Структура элемента в массиве контролов
+4 - указатель на следующий контрол в массиве
+8 - указатель на структуру контрола (CtrlStruct)
Структура контрола (CtrlStruct+...)
+18+0 - Ctrl_Name (ascii string)
+1C+0 - Ctrl_Command_Txt (ascii string) - Команда контрола
+20+0 - Ctrl_Sound_Path (ascii string) - Звук, проигрываемый при клике по контролу
+68 - BGR-цвет текста(цвет EditText)(DWORD)
+74(?) - Чекнутость переключателя типа RadioButton.
+84 - Левый отступ текста в пикселях от границы окна.
+88 - Верхний отступ текста в пикселях от границы окна.
+B8+0 - Caption (unicode string)
+BC+0 - Description (unicode string) полное описание предметов, скиллов, и тд, текст вплывающего описания любого контрола
+121 - Checked/Active (bool)
+134 - Верхний отступ текста в пикселях от границы контрола.
+13C - ItemIndex (номер выделенной строчки в листбоксе, отсчёт от нуля)
+144 - ScrollBarPosition(Значения от 0 до ScrolBarMaxPosition)
+148 - ScrolBarMaxPosition
+188 - EditTextLen(DWORD) (ограничивает передвижение курсора но не отрисовку текста)
+18С - Положение курсора в тексте EditText
+13FC+0 - EditText (unicode string) - Редактируемый текст в контроле типа Edit(поле ввода логина, пароля, строки чата)
Отдельное спасибо krukovis, за разьяснение ключевых оффсетов.
Некоторые замечания:
1)Прописав по оффсету +E8 - CurrentControlPointer(указатель на активный контрол) адрес нужного нам контрола, мы сделаем его активным, например поле ввода для логина/пароля. Далее ввод символов будет происходить именно в нём.
2)Прописав по оффсету +13FC(если контрол подразумевает ввод символов) адрес заготовленной нами строки текста, этот текст мгновенно появится в поле ввода. Так же работает со оффсетом +B8 (указатель на строку Caption), этим мы будем менять надписи на Button, Label и прочих.
3)Указатель на строку +1C+0 - Ctrl_Command_Txt, а так же указатель WinStruct на структуру окна, в котором этот контрол находится, мы можем передать в функцию работы с GUI, этим мы програмно будем например, жать на кнопки.
В ЭТОЙ ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) теме выложена функция, с помощью которой можно программно выполнать команды GUI, используя оффсеты
+8 WinStruct(указатель на структуру окна) Адрес начала структуры окна
+1C - указатель на Ctrl_Command_Txt (ascii string) - Адрес текстовой команды контрола
Дополнительно:
тык ([Ссылки могут видеть только зарегистрированные и активированные пользователи])|тык ([Ссылки могут видеть только зарегистрированные и активированные пользователи])