1,5 → 1,6 |
; ¢â®à ¯à®£à ¬¬ë
¢â¨å®¢ ªá¨¬ (Maxxxx32) |
; â ¯®á«¥¤¥£® ¨§¬¥¥¨ï: 20.07.06 18:05 |
; 01.02.07 - ®¡®¢«ñ editbox |
; 31.01.07 - ¢áñ ⥯¥àì à¨áã¥âáï ®â®á¨â¥«ì® ª«¨¥â᪮© ®¡« á⨠|
macro draw_status text_ptr |
{ |
mov [status.text],dword text_ptr |
7,8 → 8,7 |
} |
|
|
title equ 'Maxxxx32 Screenshooter v 0.78' ; £®«®¢®ª ®ª |
include 'lang.inc' |
title equ 'Screenshooter v 0.9' ; £®«®¢®ª ®ª |
include 'macros.inc' ; ¢áâ ¢«ï¥¬ ¬ ªà®áë |
meos_header cmdstr ; ¢áâ ¢«ï¥¬ § £®«®¢®ª ¯à®£à ¬¬ë |
include 'scrwin.inc' ; ¢áâ ¢«ï¥¬ ª®¤ ®ª ¯à¤¯à®á¬®âà |
15,12 → 15,14 |
include 'scrsavef.inc'; ¢áâ ¢«ï¥¬ ¯à®æ¥¤ãàã á®åà ¥¨ï ä ©« |
use_edit_box ; \ |
use_txt_button ; | |
use_label ; | |
use_gp ; |-- GUI ª®¬¯®¥âë ¨ ¥ª®â®àë¥ ¯à®æ¥¤ãàë |
use_label ; |-- GUI ª®¬¯®¥âë ¨ ¥ª®â®àë¥ ¯à®æ¥¤ãàë |
use_check_box ; | |
use_text_work ; / |
include 'gp.inc' |
include 'srectwin.inc' |
;--- ç «® ¯à®£à ¬¬ë --- |
app_start |
;mov al,[gs:1280*4*1024] |
; ãáâ ¢«¨¢ ¥¬ ipc ¡ãää¥à |
push 60 |
pop eax |
106,6 → 108,15 |
|
p_close: |
btr dword [flags],1 |
|
bt dword [flags],3 |
jnc @f |
movr eax,18 |
mov ebx,eax |
mov ecx,[set_rect_window_pid] |
int 0x40 |
@@: |
|
close: |
app_close |
|
114,29 → 125,19 |
;-------------------------------------------------------------------- |
draw_window: |
start_draw_window ; ç «® ¯¥à¥à¨á®¢ª¨ |
xor eax,eax ; ®¯à¥¤¥«ï¥¬ ®ª® |
; ®¯à¥¤¥«ï¥¬ ®ª® |
get_skin_height |
mov ebx,100*65536+320 |
mov ecx,100*65536+240 |
mov ecx,100*65536+220 |
add cx,ax |
mov edx,[sc.work] |
add edx,0x03000000 |
add edx,0x33000000;0x33000000 |
xor esi,esi |
xor edi,edi |
;xor edi,edi |
mov edi,grab_text |
xor eax,eax |
int 0x40 |
|
get_scin_height ; ¯®«ãç ¥¬ ¢ëá®âã § £®«®¢ª ®ª ¨ à áç¨âë¢ ¥¬ |
sub ax,4 ; ¯®«®¦¥¨¥ ⥪áâ § £®«®¢ª |
shr ax,1 |
mov bx,10 |
shl ebx,16 |
mov bx,ax |
|
mov eax,4 ; à¨á㥬 ⥪áâ § £®®«®¢ª |
mov ecx,[sc.grab_text] |
bts ecx,28 |
mov edx,grab_text |
mov esi,grab_text_end-grab_text |
int 0x40 |
|
movr eax,47 ; ¢ë¢®¤¨¬ ç¨á« ¢ ®ª® |
mov bx,4 |
shl ebx,16 |
193,7 → 194,13 |
mov edi,[scr_buf.ptr] |
call copy_screen_to_image |
|
bt dword [use_rect.flags],1 |
jc .use_rect |
push dword [scr] |
jmp @f |
.use_rect: |
push dword [rect.height] |
@@: |
pop dword [scr_buf.size] |
|
bt dword [ch5.flags],1 ; ¢ª«î祮 «¨ ¢â®á®åà ¥¨¥ ? |
220,10 → 227,19 |
@@: |
ret |
|
;--- ¯®«ãç¨âì ¯ ¬ïâì ¤«ï ᨬª --- |
get_mem_for_shoot: |
mov [scr_buf.ptr],dword __app_end |
movsx ecx, word [scr.width] |
movsx ebx, word [scr.height] |
bt dword [use_rect.flags],1 ; ä®âª âì ®¡« áâì íªà |
jc .use_area |
movzx ecx, word [scr.width] |
movzx ebx, word [scr.height] |
jmp @f |
.use_area: |
call read_rect |
movzx ecx, word [rect.width] |
movzx ebx, word [rect.height] |
@@: |
imul ecx,ebx |
lea ecx,[ecx*3] |
add ecx,__app_end |
263,7 → 279,7 |
call zstr_to_int |
mov [sign_n],al |
movr eax,13 |
mov ebx,140*65536+96 |
mov ebx,150*65536+96 |
mov cx,[label9.top] |
shl ecx,16 |
mov cx,10 |
273,7 → 289,7 |
movsx bx,byte [sign_n] |
shl ebx,16 |
mov ecx,[cur_number] |
mov dx,140 |
mov dx,150 |
shl edx,16 |
mov dx,[label9.top] |
mov esi,[sc.work_text] |
319,14 → 335,14 |
; (¤®«¦ ¢ë§ë¢ âìáï ¯®â®ª®¬ £« ¢®£® ®ª ) |
dr_st: |
movr eax,38 ; ®â१®ª |
mov ebx,5*65536+315 |
mov ecx,222*65536+222 |
mov ebx,0*65536+310 |
mov ecx,198*65536+198 |
mov edx,[sc.work_graph] |
int 0x40 |
|
movr eax,13 ; ¯®«®áª |
mov bx,310 |
mov ecx,223*65536+12 |
mov ecx,199*65536+15 |
mov edx,[sc.work] |
int 0x40 |
|
343,22 → 359,24 |
dec ecx |
int 0x40 |
|
mov edx,[app.pid] |
mov edx,[ebx+30] |
xor ecx,ecx |
@@: |
movr eax,9 |
inc ecx |
int 0x40 |
cmp [app.pid],edx |
cmp [ebx+30],edx |
je @f |
jmp @b |
@@: |
ret |
|
;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª, ¤¥« î騩 1 ᨬ®ª --- |
one_shoot: |
mov ecx,one_shoot_thread |
mov edx,shoot_esp |
jmp @f |
;--- ¯à®æ¥¤à , § ¯ã᪠îé ï ¯®â®ª, á®åà ïî騩 ᨬ®ª --- |
save_shoot: |
mov ecx,save_shoot_thread |
mov edx,shoot_esp |
376,6 → 394,7 |
.running: |
ret |
|
;--- ¯®â®ª, ¤¥« î騩 1 ᨬ®ª --- |
one_shoot_thread: |
mov ecx,[slot_n] |
activ_window |
392,6 → 411,8 |
btr dword [flags],2 |
jmp close |
|
;--- ¯à®æ¥¤ãà , ®â¯à ¢«ïîé ï £« ¢®¬ã ®ªã á®®¡é¥¨¥ ® ¯¥à¥à¨á®¢ª¥ |
; áâப¨ á®áâ®ï¨ï --- |
send_draw_status: |
movr eax,60 |
movr ebx,2 |
401,6 → 422,7 |
int 0x40 |
ret |
|
;--- ¯®â®ª, á®åà ï ä ©« --- |
save_shoot_thread: |
mov ecx,[slot_n] |
activ_window |
408,6 → 430,40 |
btr dword [flags],2 |
jmp close |
|
;--- ¯à®æ¥¤ãà , § ¯ã᪠îé ï ¯®â®ª ®ª ãáâ ®¢ª¨ ®¡« á⨠áꥬª¨ --- |
show_set_rect_window: |
bts dword [flags],3 |
jc @f |
movr eax,51 |
xor ebx,ebx |
inc ebx |
mov ecx,set_rect_window |
mov edx,set_rect_window_esp |
int 0x40 |
|
mov [set_rect_window_pid],eax |
ret |
|
@@: |
movr eax,18 |
mov ebx,eax |
mov ecx,[set_rect_window_pid] |
int 0x40 |
btr dword [flags],3 |
ret |
|
;--- ¯®«ã票¥ ¨ä®à¬ 樨 ®¡ ªâ¨¢®¬ ®ª¥ --- |
get_active_window_info: |
movr eax,18 |
movr ebx,7 |
int 0x40 |
|
mov ecx,eax |
movr eax,9 |
mov ebx,active_app |
int 0x40 |
ret |
|
;==================================================================== |
;=== ¤ ë¥ ¯à®£à ¬¬ë =============================================== |
;==================================================================== |
418,77 → 474,81 |
|
|
grab_text: |
db title |
grab_text_end: |
db title,0 |
|
labels: |
label1 label 10,30,0,text.1 ; ¢ëá®â íªà |
label2 label 10,40,0,text.2 ; è¨à¨ íªà |
label3 label 10,50,0,text.3 ; ¢¢¥¤¨â¥ ¨¬ï ä ©« |
label4 label 150,30,0,text.4 ; ¡¨â ¯¨ªá¥«ì |
label5 label 150,40,0,text.5 ; ¡ ©â áâபã |
label6 label 120,163,0,text.6 |
label1 label 5,5,0,text.1 ; è¨à¨ íªà |
label2 label 5,15,0,text.2 ; ¢ëá®â íªà |
label3 label 5,25,0,text.3 ; ¢¢¥¤¨â¥ ¨¬ï ä ©« |
label4 label 150,5,0,text.4 ; ¡¨â ¯¨ªá¥«ì |
label5 label 150,15,0,text.5 ; ¡ ©â áâபã |
label6 label 115,138,0,text.6 ; 100 = 1 ᥪ. |
;label7 label 10,190,0,text.7 |
;label8 label 10,225,0,text.8 |
label9 label 10,78,0,text.9 ; ⥪ã騩 |
label10 label 10,210,0,text.10 |
status label 10,226,0,no_shoot |
label9 label 5,52,0,text.9 ; ®¬¥à ⥪ã饣® ᨬª |
label10 label 5,185,0,text.10 |
status label 5,201,0,no_shoot |
labels_end: |
|
editboxes: |
edit1 edit_box 300,10,60,cl_white,0,0,0,1024,ed_buffer.1,ed_focus |
edit2 edit_box 35,80,159,cl_white,0,0,0,9,ed_buffer.2,ed_figure_only |
edit3 edit_box 35,170,189,cl_white,0,0,0,9,ed_buffer.3,ed_figure_only |
edit4 edit_box 16,170,206,cl_white,0,0,0,1,sign_n_input,ed_figure_only,1 |
edit1 edit_box 300,5,35,cl_white,0,0,0,1024,ed_buffer.1,ed_focus ; ¯ãâì ª ä ©«ã |
edit2 edit_box 35,75,134,cl_white,0,0,0,9,ed_buffer.2,ed_figure_only ; § ¤¥à¦ª |
edit3 edit_box 35,165,164,cl_white,0,0,0,9,ed_buffer.3,ed_figure_only |
edit4 edit_box 16,165,181,cl_white,0,0,0,1,sign_n_input,ed_figure_only,1 |
editboxes_end: |
|
buttons: |
but1 txt_button 150,10,15,90,2,0,0,but_text.1,one_shoot |
but2 txt_button 145,165,15,90,3,0,0,but_text.2,save_shoot |
but3 txt_button 140,120,12,145,4,0,0,but_text.3,show_scr_window |
but4 txt_button 80,210,15,188,5,0,0,but_text.4,apply_number |
but5 txt_button 150,10,15,110,6,0,0,but_text.5,start_autoshoot |
but6 txt_button 145,165,15,110,7,0,0,but_text.6,stop_autoshoot |
but1 txt_button 150,5,15,65,2,0,0,but_text.1,one_shoot ; ᤥ« âì ᨬ®ª |
but2 txt_button 145,160,15,65,3,0,0,but_text.2,save_shoot ; á®åà ¨âì ᨬ®ª |
but3 txt_button 140,115,12,120,4,0,0,but_text.3,show_scr_window ; ¯®ª § âì ᨬ®ª |
but4 txt_button 80,205,15,163,5,0,0,but_text.4,apply_number ; ¯à¨¬¥¨âì ®¬¥à |
but5 txt_button 150,5,15,85,6,0,0,but_text.5,start_autoshoot ; ç âì ¢â®áêñ¬ªã |
but6 txt_button 145,160,15,85,7,0,0,but_text.6,stop_autoshoot ; ®áâ ®¢¨âì ¢â®áêñ¬ªã |
but7 txt_button 40,205,10,150,8,0,0,but_text.7,show_set_rect_window ; § ¤ âì ®¡« áâì |
buttons_end: |
|
check_boxes: |
ch1 check_box 10,130,cl_white,0,0,ch_text.1,(ch_text.2-ch_text.1) |
ch2 check_box 10,145,cl_white,0,0,ch_text.2,(ch_text.3-ch_text.2) |
ch3 check_box 150,130,cl_white,0,0,ch_text.3,(ch_text.4-ch_text.3) |
ch4 check_box 10,160,cl_white,0,0,ch_text.4,(ch_text.5-ch_text.4) |
ch5 check_box 10,175,cl_white,0,0,ch_text.5,(ch_text.6-ch_text.5) |
ch6 check_box 10,190,cl_white,0,0,ch_text.6,(ch_text.7-ch_text.6) |
ch1 check_box 5,105,cl_white,0,0,ch_text.1,(ch_text.2-ch_text.1) ; ᢥàãâì ®ª® |
ch2 check_box 5,120,cl_white,0,0,ch_text.2,(ch_text.3-ch_text.2) ; § ⥬ ᤥ« âì ªâ¨¢ë¬ |
ch3 check_box 145,105,cl_white,0,0,ch_text.3,(ch_text.4-ch_text.3) ; ¯®ª § âì ᨬ®ª |
ch4 check_box 5,135,cl_white,0,0,ch_text.4,(ch_text.5-ch_text.4) ; |
ch5 check_box 5,150,cl_white,0,0,ch_text.5,(ch_text.6-ch_text.5) |
ch6 check_box 5,165,cl_white,0,0,ch_text.6,(ch_text.7-ch_text.6) |
use_rect check_box 145,150,cl_white,0,0,ch_text.7,(ch_text.8-ch_text.7) ; ¨á¯. ®¡« áâì |
; ¢â®ã¬¥à æ¨ï |
check_boxes_end: |
|
if lang eq ru |
text: |
.2: db 'ëá®â íªà :',0 |
.1: db '¨à¨ íªà :',0 |
.3: db '¢¥¤¨â¥ ¯®«ë© ¯ãâì ª ä ©«ã:',0 |
.4: db '¨â ¯¨ªá¥«ì:',0 |
.5: db ' ©â áâபã:',0 |
.6: db '100 = 1 ᥪ㤠',0 |
.2 db 'ëá®â íªà :',0 |
.1 db '¨à¨ íªà :',0 |
.3 db '¢¥¤¨â¥ ¯®«ë© ¯ãâì ª ä ©«ã:',0 |
.4 db '¨â ¯¨ªá¥«ì:',0 |
.5 db ' ©â áâபã:',0 |
.6 db '100 = 1 ᥪ㤠',0 |
;.7: db '¢¥¤¨â¥ ¨¬ï ä ©« :',0 |
;.8: db '¬¥áâ® "*" ¢ ¨¬¥¨ ä ©« ¡ã¤¥â ¢áâ ¢«ïâìáï ®¬¥à.',0 |
.9: db '¥ªã騩 ®¬¥à ᨬª :',0 |
.10: db '®«¨ç¥á⢮ § ª®¢ ¢ ®¬¥à¥:',0 |
.9 db '®¬¥à ⥪ã饣® ᨬª :',0 |
.10 db '®«¨ç¥á⢮ § ª®¢ ¢ ®¬¥à¥:',0 |
|
but_text: |
.1: db '¤¥« âì ᨬ®ª íªà ',0 |
.2: db '®åà ¨âì ᨬ®ª íªà ',0 |
.3: db '®ª § âì ᨬ®ª ᥩç á',0 |
.4: db 'ਬ¥¨âì',0 |
.5: db ' ç âì ¢â®áꥬªã',0 |
.6: db 'áâ ®¢¨âì ¢â®áꥬªã',0 |
.1 db '¤¥« âì ᨬ®ª íªà ',0 |
.2 db '®åà ¨âì ᨬ®ª íªà ',0 |
.3 db '®ª § âì ᨬ®ª ᥩç á',0 |
.4 db 'ਬ¥¨âì',0 |
.5 db ' ç âì ¢â®áꥬªã',0 |
.6 db 'áâ ®¢¨âì ¢â®áꥬªã',0 |
.7 db '§ ¤ âì',0 |
|
ch_text: |
.1 db '¢¥àãâì ®ª®';,0 |
.2 db '®ª § âì ᨬ®ª';,0 |
.3 db '§ ⥬ ᤥ« âì ªâ¨¢ë¬';,0 |
.4: db ' ¤¥à¦ª :';,0 |
.5: db '¢â®á®åà ¥¨¥';,0 |
.6: db '¢â®ã¬¥à æ¨ï, ç¨ ï á';,0 |
.7: |
.4 db ' ¤¥à¦ª :';,0 |
.5 db '¢â®á®åà ¥¨¥';,0 |
.6 db '¢â®ã¬¥à æ¨ï, ç¨ ï á';,0 |
.7 db '¡« áâì' |
.8: |
|
no_shoot db '¨¬®ª ¥ ᤥ« ',0 |
shooting db '®â®£à ä¨à®¢ ¨¥...',0 |
503,6 → 563,7 |
device_er db '訡ª ãáâனá⢠',0 |
not_shooted db '¤¥« ©â¥ ᨬ®ª !!!',0 |
no_file_name db '¢¥¤¨â¥ ¨¬ï ä ©« !!!',0 |
invalid_rect db '¥¤®¯ãáâ¨¬ë¥ à §¬¥àë ®¡« áâ¨',0 |
end if |
|
sign_n_input: |
538,6 → 599,15 |
.bmp_area dd ? |
.end dd ? |
|
set_rect_window_pid dd ? |
set_rect_window_slot dd ? |
|
rect_input_buffer: |
.left rb 6 |
.top rb 6 |
.width rb 6 |
.height rb 6 |
|
cmdstr rb 257 |
|
ed_buffer: |
549,7 → 619,17 |
rb 1058 |
|
scr screen_prop |
rect: |
.left dw ? |
.top dw ? |
.height dw ? |
.width dw ? |
|
|
sc sys_color_table |
app procinfo |
shoot_esp rb 512 |
app procinfo ; ¨ä®à¬ æ¨ï ® £« ¢®¬ ®ª¥ |
active_app procinfo ; ¨ä®à¬ æ¨ï ®¡ ªâ¨¢®¬ ®ª¥ |
set_rect_window_procinfo procinfo ; ¨ä®à¬ æ¨ï ®¡ ®ª¥ ®¡« á⨠|
shoot_esp rb 512 ; á⥪ ¯®â®ª ä®âª ìï |
set_rect_window_esp rb 512 ; á⥪ ®ª ®¡« á⨠|
app_end ; ª®¥æ ¯à®£à ¬¬ë |