Посл.ответ |
Сообщение |
Ранг: 260.3 (наставник), 2thx Активность: 0.12↘0 Статус: Участник PPC-PROTECT author
|
Создано: 12 сентября 2004 01:25 · Личное сообщение · #1
мне необходимо полчить текст содержащийся в TMemo в чужом окне и записать новый текст... как найти хэндл этого Мемо ?
----- Пиво, сиськи, транс | Сообщение посчитали полезным: |
|
Ранг: 31.0 (посетитель), 1thx Активность: 0.04↘0 Статус: Участник
|
Создано: 12 сентября 2004 02:53 · Поправил: sanniassin · Личное сообщение · #2
Хехе, ты нарушил п. 5 правил форума:
Название темы должно быть чётким и ясным. Запрещается создавать темы с заголовками типа "Помогите!", "HELP!" и т.п. Подобные темы будут удаляться.
| Сообщение посчитали полезным: |
Ранг: 631.1 (!), 62thx Активность: 0.37↘0.01 Статус: Участник Автор VB Decompiler
|
Создано: 12 сентября 2004 03:00 · Личное сообщение · #3
sanniassin пишет:
Хехе, ты нарушил п. 5 правил форума:
Название темы должно быть чётким и ясным. Запрещается создавать темы с заголовками типа "Помогите!", "HELP!" и т.п. Подобные темы будут удаляться.
Самовольное модерирование разве не карается законом?
----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! | Сообщение посчитали полезным: |
Ранг: 1.2 (гость) Активность: 0=0 Статус: Участник
|
Создано: 12 сентября 2004 03:16 · Личное сообщение · #4
любым шпионом, хотя бы этим
hxtp://tsrh.us/wspyf.zip
| Сообщение посчитали полезным: |
Ранг: 103.1 (ветеран), 3thx Активность: 0.07↘0.01 Статус: Участник
|
Создано: 12 сентября 2004 05:22 · Личное сообщение · #5
-= ALEX =-
Если програмно, то сначала FindWindow для окна родителя, потом, для TMemo т.е. указываешь TMemo как класс для поиска на окне родителе.
----- Crack your mind, save the planet | Сообщение посчитали полезным: |
Ранг: 260.3 (наставник), 2thx Активность: 0.12↘0 Статус: Участник PPC-PROTECT author
|
Создано: 12 сентября 2004 06:02 · Поправил: Модератор · Личное сообщение · #6
Styx по подробнее можно как искать на родителе...
sanniassin умничать не нуно. я тут впервые
Funbit мне нужно самому программулю сделать...
----- Пиво, сиськи, транс | Сообщение посчитали полезным: |
Ранг: 52.6 (постоянный) Активность: 0.02↘0 Статус: Участник
|
Создано: 12 сентября 2004 06:15 · Личное сообщение · #7
у меня есть рабочий исходник для делфи, в IRC спроси
Здесь не втыкается хз почему
| Сообщение посчитали полезным: |
Ранг: 260.3 (наставник), 2thx Активность: 0.12↘0 Статус: Участник PPC-PROTECT author
|
Создано: 13 сентября 2004 04:01 · Личное сообщение · #8
нифига не выходит. есть еще предложения ?
----- Пиво, сиськи, транс | Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 13 сентября 2004 04:12 · Поправил: RideX · Личное сообщение · #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;
| Сообщение посчитали полезным: |
Ранг: 536.4 (!), 171thx Активность: 0.66↘0.13 Статус: Администратор Создатель CRACKL@B
|
Создано: 13 сентября 2004 04:50 · Личное сообщение · #10
-= ALEX =- пишет:
мне необходимо полчить текст содержащийся в TMemo в чужом окне и записать новый текст... как найти хэндл этого Мемо ?
Алекс я тебя не узнаю - то протекторы пишешь, то такие вопросы задаешь...
----- Всем не угодишь | Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 13 сентября 2004 06:15 · Личное сообщение · #11
-= ALEX =- пишет:
sanniassin умничать не нуно. я тут впервые
В смысле... в первые ?
| Сообщение посчитали полезным: |
Ранг: 260.3 (наставник), 2thx Активность: 0.12↘0 Статус: Участник PPC-PROTECT author
|
Создано: 13 сентября 2004 08:11 · Личное сообщение · #12
Bad_guy да вот понимаешь, долбался все также как тут написано, делал подобный пример, что и RideX написал (спасибо ему), но вот нифига не выходит... вот и задал вопрос.
Che подгон нах ))
----- Пиво, сиськи, транс | Сообщение посчитали полезным: |
Ранг: 65.7 (постоянный) Активность: 0.05↘0 Статус: Участник
|
Создано: 13 сентября 2004 08:27 · Личное сообщение · #13
-= ALEX =-
В принципе есть такая прога Sing0fMistery она генерит скрипты, как раз для твоего случая, попробуй ее, а потом просто нужное вынь и вставь в свой проект, будет правда на asm'e
| Сообщение посчитали полезным: |
Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 13 сентября 2004 09:30 · Личное сообщение · #14
-= ALEX =-,здесь имхо так можно сделать:сперва FindWindow для получения хэндла родительского окна,
затем FindWindowEx - получить хэндл Memo.
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 14 сентября 2004 03:38 · Личное сообщение · #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 (наставник), 2thx Активность: 0.12↘0 Статус: Участник PPC-PROTECT author
|
Создано: 14 сентября 2004 04:16 · Личное сообщение · #16
Дело в том, что у меня хэндл мемо не находится, вот главная трабла. юзаю тот же мс спай, он пишет класс TMemo.. но вот хендл не ловится...
RideX чет ты загнул с szMsgGetCapt по-моему ) там же константы обычные, а не строки...
----- Пиво, сиськи, транс | Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 14 сентября 2004 04:30 · Личное сообщение · #17
-= ALEX =- пишет:
чет ты загнул с szMsgGetCapt
Это у меня Caption'ы MessageBox'ов, просто для контроля, когда WM_GETTEXT, а когда WM_SETTEXT В общем не принципиально...
Если прога не большая, можешь мне скинуть, могу посмотреть.
| Сообщение посчитали полезным: |
Ранг: 260.3 (наставник), 2thx Активность: 0.12↘0 Статус: Участник PPC-PROTECT author
|
Создано: 14 сентября 2004 05:42 · Личное сообщение · #18
млин, моё пред сообщение не отпостилось короче разобрался я. просто мой мемо был на панеле, тот еще не панеле, а тот в свою очередь тоже на панеле )
----- Пиво, сиськи, транс | Сообщение посчитали полезным: |
Ранг: 203.3 (наставник) Активность: 0.22↘0 Статус: Участник UPX Killer -d
|
Создано: 14 сентября 2004 06:21 · Личное сообщение · #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
----- Я медленно снимаю с неё UPX... *FF_User* | Сообщение посчитали полезным: |
Ранг: 203.3 (наставник) Активность: 0.22↘0 Статус: Участник UPX Killer -d
|
Создано: 14 сентября 2004 06:22 · Личное сообщение · #20
Думаю, что выставить текст сможешь сам. Т.к. этот пример успешно берёт текст из МЕМО и выводит в МесагБоХе. Всё работает. Проверено!
Если мемы или окна с классом TForm1 нет, то просто выход.
----- Я медленно снимаю с неё UPX... *FF_User* | Сообщение посчитали полезным: |
Ранг: 203.3 (наставник) Активность: 0.22↘0 Статус: Участник UPX Killer -d
|
Создано: 14 сентября 2004 06:26 · Личное сообщение · #21
Ну вот. Как обычно, я опоздал.. Пока набивал пример, всё сделали...
----- Я медленно снимаю с неё UPX... *FF_User* | Сообщение посчитали полезным: |
Ранг: 260.3 (наставник), 2thx Активность: 0.12↘0 Статус: Участник PPC-PROTECT author
|
Создано: 14 сентября 2004 08:56 · Личное сообщение · #22
угу ) тока не так вообще как ты написал. но за старания - респект !!!
----- Пиво, сиськи, транс | Сообщение посчитали полезным: |
Ранг: 203.3 (наставник) Активность: 0.22↘0 Статус: Участник UPX Killer -d
|
Создано: 14 сентября 2004 10:58 · Личное сообщение · #23
-= ALEX =-
Я тут потестил этот пример: работает без внесения изменений, даже если memo находится на др. компонентах.
----- Я медленно снимаю с неё UPX... *FF_User* | Сообщение посчитали полезным: |