eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: yuu (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› help
Посл.ответ Сообщение


Ранг: 260.3 (наставник)
Статус: Участник
PPC-PROTECT author

Создано: 12 сентября 2004 01:25 New!
Цитата · Личное сообщение · #1

мне необходимо полчить текст содержащийся в TMemo в чужом окне и записать новый текст... как найти хэндл этого Мемо ?

Ранг: 31.0 (посетитель)
Статус: Участник

Создано: 12 сентября 2004 02:53 · Поправил: sanniassin New!
Цитата · Личное сообщение · #2

Хехе, ты нарушил п. 5 правил форума:
Название темы должно быть чётким и ясным. Запрещается создавать темы с заголовками типа "Помогите!", "HELP!" и т.п. Подобные темы будут удаляться.


Ранг: 630.8 (!)
Статус: Участник
Автор VB Decompiler

Создано: 12 сентября 2004 03:00 New!
Цитата · Личное сообщение · #3

sanniassin пишет:
Хехе, ты нарушил п. 5 правил форума:
Название темы должно быть чётким и ясным. Запрещается создавать темы с заголовками типа "Помогите!", "HELP!" и т.п. Подобные темы будут удаляться.

Самовольное модерирование разве не карается законом?

Ранг: 1.2 (гость)
Статус: Участник

Создано: 12 сентября 2004 03:16 New!
Цитата · Личное сообщение · #4

любым шпионом, хотя бы этим
hxtp://tsrh.us/wspyf.zip

Ранг: 102.1 (ветеран)
Статус: Участник

Создано: 12 сентября 2004 05:22 New!
Цитата · Личное сообщение · #5

-= ALEX =-
Если програмно, то сначала FindWindow для окна родителя, потом, для TMemo т.е. указываешь TMemo как класс для поиска на окне родителе.


Ранг: 260.3 (наставник)
Статус: Участник
PPC-PROTECT author

Создано: 12 сентября 2004 06:02 · Поправил: Модератор New!
Цитата · Личное сообщение · #6

Styx по подробнее можно как искать на родителе...
sanniassin умничать не нуно. я тут впервые
Funbit мне нужно самому программулю сделать...

Ранг: 52.6 (постоянный)
Статус: Участник

Создано: 12 сентября 2004 06:15 New!
Цитата · Личное сообщение · #7

у меня есть рабочий исходник для делфи, в IRC спроси
Здесь не втыкается хз почему


Ранг: 260.3 (наставник)
Статус: Участник
PPC-PROTECT author

Создано: 13 сентября 2004 04:01 New!
Цитата · Личное сообщение · #8

нифига не выходит. есть еще предложения ?

Ранг: 42.0 (посетитель)
Статус: Участник

Создано: 13 сентября 2004 04:12 · Поправил: RideX New!
Цитата · Личное сообщение · #9

-= ALEX =-
const
NewText: PChar = 'Some text...';
var
wndParent, wndChild: HWND;
buff: array [0..1024] of Char;
begin
//handle Memo
wndParent := FindWindow('TfmMain', 'fmCaption');
wndChild := FindWindowEx(wndParent, 0, 'TMemo', nil);
if wndChild = 0 then begin
MessageBoxA(handle, '...not found', 'Error', MB_ICONERROR);
Exit;
end;
//из Memo
SendMessage(wndChild, WM_GETTEXT, 1023, integer(@buff));
MessageBoxA(handle, buff, 'WM_GETTEXT', MB_ICONINFORMATION);
//в Memo
SendMessage(wndChild, WM_SETTEXT, 0, integer(NewText));
MessageBoxA(handle, NewText, 'WM_SETTEXT', MB_ICONINFORMATION);
end;


Ранг: 533.8 (!)
Статус: Администратор
Создатель CRACKL@B

Создано: 13 сентября 2004 04:50 New!
Цитата · Личное сообщение · #10

-= ALEX =- пишет:
мне необходимо полчить текст содержащийся в TMemo в чужом окне и записать новый текст... как найти хэндл этого Мемо ?

Алекс я тебя не узнаю - то протекторы пишешь, то такие вопросы задаешь...

Ранг: 0.0 (гость)
Статус: Участник

Создано: 13 сентября 2004 06:15 New!
Цитата · Личное сообщение · #11

-= ALEX =- пишет:
sanniassin умничать не нуно. я тут впервые

В смысле... в первые ?


Ранг: 260.3 (наставник)
Статус: Участник
PPC-PROTECT author

Создано: 13 сентября 2004 08:11 New!
Цитата · Личное сообщение · #12

Bad_guy да вот понимаешь, долбался все также как тут написано, делал подобный пример, что и RideX написал (спасибо ему), но вот нифига не выходит... вот и задал вопрос.
Che подгон нах ))

Ранг: 65.7 (постоянный)
Статус: Участник

Создано: 13 сентября 2004 08:27 New!
Цитата · Личное сообщение · #13

-= ALEX =-

В принципе есть такая прога Sing0fMistery она генерит скрипты, как раз для твоего случая, попробуй ее, а потом просто нужное вынь и вставь в свой проект, будет правда на asm'e


Ранг: 1288.1 (!!!!)
Статус: Модератор

Создано: 13 сентября 2004 09:30 New!
Цитата · Личное сообщение · #14

-= ALEX =-,здесь имхо так можно сделать:сперва FindWindow для получения хэндла родительского окна,
затем FindWindowEx - получить хэндл Memo.

Ранг: 42.0 (посетитель)
Статус: Участник

Создано: 14 сентября 2004 03:38 New!
Цитата · Личное сообщение · #15

-= ALEX =- пишет:
что и RideX написал (спасибо ему), но вот нифига не выходит...

Хм, странно, должно работать... Ну а так попробуй:
.data
wndParent dd 0
wndChild dd 0

lpParentClassName db "TForm1",0 ;здесь пиши класс твоей формы
lpParentWindowName db "Form1",0 ;здесь её заголовок
lpChildClassName db "TMemo",0

szMsgGetCapt db "WM_GETTEXT",0
szMsgSetCapt db "WM_SETTEXT",0
szMsgErrCapt db "Error",0
szMsgError db "...not found",0

szNewText db "Some text...",0
buff db 1024 dup (0)

.code
invoke FindWindow, addr lpParentClassName, addr lpParentWindowName
.if eax == NULL
invoke MessageBoxA, hWnd, addr szMsgError, addr szMsgErrCapt, MB_ICONERROR + MB_OK
jmp EndWork
.endif
mov wndParent, eax
invoke FindWindowEx, wndParent, NULL, addr lpChildClassName, NULL
.if eax == NULL
invoke MessageBoxA, hWnd, addr szMsgError,addr szMsgErrCapt, MB_ICONERROR + MB_OK
jmp EndWork
.endif
mov wndChild, eax

invoke SendMessage, wndChild, WM_GETTEXT, 1023, addr buff
invoke MessageBoxA, hWnd, addr buff, addr szMsgGetCapt, MB_ICONINFORMATION + MB_OK

invoke SendMessage, wndChild, WM_SETTEXT, 0, addr szNewText
invoke MessageBoxA, hWnd, addr szNewText, addr szMsgSetCapt, MB_ICONINFORMATION + MB_OK


Ранг: 260.3 (наставник)
Статус: Участник
PPC-PROTECT author

Создано: 14 сентября 2004 04:16 New!
Цитата · Личное сообщение · #16

Дело в том, что у меня хэндл мемо не находится, вот главная трабла. юзаю тот же мс спай, он пишет класс TMemo.. но вот хендл не ловится...
RideX чет ты загнул с szMsgGetCapt по-моему ) там же константы обычные, а не строки...

Ранг: 42.0 (посетитель)
Статус: Участник

Создано: 14 сентября 2004 04:30 New!
Цитата · Личное сообщение · #17

-= ALEX =- пишет:
чет ты загнул с szMsgGetCapt

Это у меня Caption'ы MessageBox'ов, просто для контроля, когда WM_GETTEXT, а когда WM_SETTEXT В общем не принципиально...
Если прога не большая, можешь мне скинуть, могу посмотреть.


Ранг: 260.3 (наставник)
Статус: Участник
PPC-PROTECT author

Создано: 14 сентября 2004 05:42 New!
Цитата · Личное сообщение · #18

млин, моё пред сообщение не отпостилось короче разобрался я. просто мой мемо был на панеле, тот еще не панеле, а тот в свою очередь тоже на панеле )

Ранг: 203.3 (наставник)
Статус: Участник
UPX Killer -d

Создано: 14 сентября 2004 06:21 New!
Цитата · Личное сообщение · #19

Если тема ещё актуальна, то вот что я тут набросал:

.386
.model flat, stdcall

includelib kernel32.lib
includelib user32.lib

include C:\masm32\include\windows.inc
include C:\masm32\include\kernel32.inc
include C:\masm32\include\user32.inc

.data
WndName db 'Form1',0
WndClass db 'TForm1',0
MemoClass db 'TMemo',0
Caption db 'Текст из мемо:',0
TextBuffer dd 16 dup (0)
ClassBuffer dd 4 dup (0)
hParentWnd dd 0

.code
EnumW proc
push ebp
mov ebp, esp

push offset TextBuffer
push [16*4-1]
push WM_GETTEXT
push dword ptr [ebp+08h] ; Эт хендл Мемы
call SendMessage

push [4*4-1]
push offset ClassBuffer
push dword ptr [ebp+08h]
call GetClassName

push offset ClassBuffer
push offset MemoClass
call lstrcmpi
test eax, eax
jnz @@NiHrenaNet

push 0
push offset Caption
push offset TextBuffer
push 0
call MessageBoxA

@@NiHrenaNet:
mov eax, 1
pop ebp
ret 8
EnumW endp

start:
push offset WndName
push offset WndClass
call FindWindow
mov hParentWnd, eax

push 1
push offset EnumW
push eax
call EnumChildWindows

push 0
call ExitProcess
nop
end start

Ранг: 203.3 (наставник)
Статус: Участник
UPX Killer -d

Создано: 14 сентября 2004 06:22 New!
Цитата · Личное сообщение · #20

Думаю, что выставить текст сможешь сам. Т.к. этот пример успешно берёт текст из МЕМО и выводит в МесагБоХе. Всё работает. Проверено!
Если мемы или окна с классом TForm1 нет, то просто выход.

Ранг: 203.3 (наставник)
Статус: Участник
UPX Killer -d

Создано: 14 сентября 2004 06:26 New!
Цитата · Личное сообщение · #21

Ну вот. Как обычно, я опоздал.. Пока набивал пример, всё сделали...


Ранг: 260.3 (наставник)
Статус: Участник
PPC-PROTECT author

Создано: 14 сентября 2004 08:56 New!
Цитата · Личное сообщение · #22

угу ) тока не так вообще как ты написал. но за старания - респект !!!

Ранг: 203.3 (наставник)
Статус: Участник
UPX Killer -d

Создано: 14 сентября 2004 10:58 New!
Цитата · Личное сообщение · #23

-= ALEX =-
Я тут потестил этот пример: работает без внесения изменений, даже если memo находится на др. компонентах.
 eXeL@B —› Основной форум —› help

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS