
Опытный
 
Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск
Репутация: нет Всего: 4
|
| Код | WMSIZE: mov eax,0 mov ebx,0 mov ax,[ebp+014h];ðàçìåð Õ mov bx,[ebp+016h];ðàçìåð ïî Y sub bx,20 ;êîððåêòèðîâêà îò âåðõíåãî êðàÿ ò.ê. push 1 push ebx push eax push 20 push 0 push [HWNDSTAT] call MoveWindow jmp finish ; jmp DefWNDPROC WMCOMMAND: ;---------------------------------Îáðàáîòêà êíîïêè mov eax,HWNDBUTT cmp DWORD ptr [ebp+14h],eax;ïî àäðåñó ebp+14h õðàíèòñÿ äåñêðèïòîð -=LPARAM=- ;îòïðàâèòåëÿ ñîîòâåòñòâåííî âåäåòñÿ ïðîâåðêà je BUTTS ;---------------------------------Îáðàáîòêà ìåíþ îááîóò------------------------------------- CMP WORD PTR [ebp+10h],5; èíäåíòèôèêàòîð ïóíêòà ìåíþ WPARAM JE MenAbout CMP WORD ptr [ebp+10h],1;SAVE JE SaveFil CMP WORD PTR [ebp+10h],2;OPEN JE OpenFil jmp Finish ;=================================Îòêðûòü ôàéë äèàëîãîâîå îêíî OpenFil: lea esi,NEWHWND mov ebx,[esi] mov lpofn_o.hwndOwner,ebx push offset lpofn_o call GetOpenFileNameA cmp eax,0 je no_select_op ;===========================================Îòêðûòèå ôàéëà lea esi,lpofn.lpstrFile
push 0 push FILE_ATTRIBUTE_NORMAL; push OPEN_EXISTING ;OPEN_ALWAYS push 0 ; push FILE_SHARE_READ ; ñîâìåñòíîå èñïîëüçîâàíèå push GENERIC_ALL ; ðåæèì äîñòóïà push [esi] ; Name File call CreateFileA mov [filedesk],eax ;----------------------------------ðàçìåð ôàéëà lea esi,lpFileSizeHigh push esi push eax call GetFileSize lea esi,lpFileSizeHigh mov ebx,[esi] add eax,ebx mov sizefile,eax ;--------------------------------âûäåëåíèå ïàìÿòè ïîä áóôôåð push eax push GMEM_ZEROINIT call GlobalAlloc mov HWNDBUFF,eax ;---------------------------------------- lea esi,filedesk ; mov eax,[esi] ; lea esi,HWNDBUFF ; mov ebx,[esi] ;âñå ýòî äëÿ íàãëÿäíîñòè lea esi,SizeFile ; mov edx,[esi] ; lea esi,NuberByteRead ; push 0 push esi push edx push ebx push eax call ReadFile ;------------------------------ lea esi,HWNDSTAT mov eax,[esi] lea esi,HWNDBUFF
push [esi] push eax call SetWindowTextA ;------------------------------Çàêðûâàåì äåñêðèïòîð ôàéëà lea esi,filedesk mov eax,[esi] push eax call CloseHandle ;------------------------------îñâîáîæäàåì äèíàìè÷åñêóþ ïàìÿòü lea esi,HWNDBUFF mov eax,[esi] push eax call GlobalFree ;------------------------------------------------
;=========================================================== no_select_op: jmp DefWNDPROC ;=================================Ñîõðàíèòü ôàéë äèàëîãîâîå îêíî SaveFil: lea esi,NEWHWND mov ebx,[esi] mov lpofn.hwndOwner,ebx
push offset lpofn call GetSaveFileNameA cmp eax,0 je no_select_sa lea esi,lpofn.lpstrFile push 0 push FILE_ATTRIBUTE_NORMAL push OPEN_ALWAYS push 0 push FILE_SHARE_RW push GENERIC_ALL push [esi]; Name File call CreateFileA mov [FileDesk],eax push [HWNDSTAT] call GetWindowTextLengthA mov [buffsize],eax push eax push GMEM_FIXED call GlobalAlloc mov [HWNDBUFF],eax
lea esi,HWNDBUFF mov eax,[esi] push offset buffsize push eax; offset HWNDBUFF push [HWNDSTAT] call GetWindowTextA lea esi,HWNDBUFF mov eax,[esi]
push 0 push offset FileBytWri push [buffsize] push [HWNDBUFF] push [FileDesk] call WriteFile
lea esi,HWNDBUFF mov eax,[esi]
push eax call GlobalFree push [FileDesk] call CloseHandle
;=========================================================== no_select_sa: jmp DefWNDPROC MenAbout: lea esi,WC.clsHIcon; ãðóçèì àäðåñ äåñêð íàøåé èêîíêè push [esi] ; ãðóçèì èç àäðåñà çíà÷åíèå äåñêðèï íàøåé èêíîêè push Offset progr; push Offset progs; push NEWHWND ;ÒÓÒ íóæåí äåñêðèïòîð îêíà , à íå ðèëîåíèÿ call ShellAboutA jmp DefWNDPROC ;ShellAbout(Form1.Handle,'Lonley Raven','FreeLancer Programming',0); BUTTS: push 0 call GetDC push 18 push offset MESS_BUT push 10 push 10 push eax call TextOutA ;=-=-=-SelStart push [HWNDSTAT] Call SetFocus push 8 push 4 push EM_SETSEL push [HWNDSTAT] Call SendMessageA jmp DefWNDProc WMACTIVATE: jmp Finish ; jmp DefWNDPROC ;=================================== ;WMPAINT: ; ; jmp finish ; jmp DefWNDPROC ;=================================== WMCREATE: push offset richeditdll;çàãðóçêà áèáëèîòåêè ñ áîãàòûì ðåäàêòîðîì call LoadLibraryA ; mov hriched,eax ;äåêðèïòîð îáúåêòà
push 0 push [HINST];Äåñêðèïòîð ýêçåïë ïðèëîæåíèÿ push 0 push DWORD PTR [EBP+08h];Äåñêðèïòîð îêíà âëàäåëüöà push 250;y push 377;x push 1 ;y push 0 ;x push ClsEDIT push offset EDITTITLE push offset CLSSTATIC push WS_EX_CLIENTEDGE call CreateWindowExA;ñîçäàëè RICHEDIT mov [HWNDSTAT],eax push 0 push -1 push EM_LIMITTEXT push [HWNDSTAT] call SendMessageA;óñòàíàâëèâàåì íîâûé ðàçìåð áóôåðà òåêñòà ðåäàêòîðà ;--------------------------------------------- push 0 push [HINST];Äåñêðèïòîð ýêçåïë ïðèëîæåíèÿ push 0 push DWORD PTR [EBP+08h];Äåñêðèïòîð îêíà âëàäåëüöà push 15;y2 push 52;x2 push 0;y1 push 0 ;x1 push ClsBUT push offset BUTTON push offset CLSBUTTON push 0 call CreateWindowExA;ñîçäàåì êíîïêó mov [HWNDBUTT],eax ;---------------------------------------------- push offset PMENU push [HINST] call LoadMenuA ;---------------------------------------------- push eax push DWORD PTR [EBP+08h] CAll SetMenu lea esi,NEWHWND mov eax,[esi] push FALSE push eax call GetSystemMenu mov hSysMenu,eax jmp finish ;InsertMenuItem(p1: HMENU; p2: UINT; p3: BOOL; const p4: TMenuItemInfo) DefWNDPROC: ;Îáðàáàòûâàåìûå ñîîáùåíèå ïî óìîë÷àíèþ ò.å. ïî DEFAULT-ó Push dword ptr [ebp+14h] Push dword ptr [ebp+10h] Push dword ptr [ebp+0ch] Push dword ptr [ebp+08h] call DefWindowProcA jmp Finish WMDESTROY: push 0 call PostQuitMessage Mov eax,0 FINISH: ;âîñòàíàâëèâàåì ðåãèñòðû pop edi pop esi pop ebx pop ebp ret 16 WNDPROC ENDP _TEXT ENDS END START
|
--------------------
Земную жизнь пройдя до половины, Я очутился в сумрачном лесу, Утратив правый путь во тьме долины. Каков он был, о, как произнесу, Тот дикий лес, дремучий и грозящий,
|