Програма для обліку інтернет трафіку

Автор: Пользователь скрыл имя, 04 Апреля 2012 в 01:22, курсовая работа

Описание работы

Метою курсової роботи є закріплення теоретичних знань та практичних навичок програмування, набутих при вивченні дисциплін «Системний аналіз та проектування комп'ютерних інформаційних систем»
В ході виконання курсової роботи студенти повинні навчитися самостійно працювати з літературою, розробляти алгоритми, здійснювати їх програмну реалізацію та від лагодження на сучасних комп‘ютерних системах.

Содержание

Вступ………………………………………………………………………………. 3
1. Огляд літератури………………………………………………………………. 4
2. Формулювання задачі.……………………………………………………….. 11
3. Алгоритм розв’язання задачі.………………………………………………... 12
4. Програмні реалізації алгоритму.……………………………………………. 13
5. Інструкція користувачеві програми.………………………………………... 14
6. Контрольні приклади та аналіз результатів їх реалізації.……………….… 15
Висновки……………………………………………………………………….… 17
Література…………………………………………………………………........... 18
Додатки…………………………………………………………………………….19
Додаток 1. Лістинг Inc файлу………………………………………………...…… 19
Додаток 2. Лістинг Asm файлу………………….…….………………………….… 22

Работа содержит 1 файл

Kursakasm (1).doc

— 651.00 Кб (Скачать)

                                                        invoke MessageBeep,MB_ICONASTERISK

                                          .endif

                                         

                                          .if eax == 1003

                                                        mov              closeCon,1

                                                        .else

                                                        mov              closeCon,0

                                          .endif

                                         

                                          .if eax == 1004

                                                        mov              cOut,1

                                                        .else

                                                        mov              cOut,0

                                          .endif

                                         

                                          .if               eax == 10010

                                                                      invoke ExitProcess,0

                                         

                                          .elseif eax == 10003

                                                                      invoke ShellAbout,hWnd,addr szDisplayName,addr AboutMsg,0

                                         

                                          .elseif eax == 10004

                                                                      invoke MessageBox,NULL,ADDR HelpStr,ADDR HelpTit,MB_OK

                                             .endif

                            .elseIF wParam==CBN_SELENDOK shl 16 + 1001

                                          invoke SendMessage,hComBox,CB_GETCURSEL,NULL,NULL

                                          mov h,eax

                                          inc h

                                          invoke SelectedInterface,hWnd

                           

                            .ENDIF

              .elseif eax == WM_HSCROLL

                            invoke SendMessage,he,TBM_GETPOS,0,0

                            invoke wsprintf,addr buffer,addr format,eax

                            invoke SendMessage,edit,WM_SETTEXT,0,addr buffer

              .elseif eax==WM_TIMER

                            invoke SelectedInterface,hWnd

              .elseif eax==WM_CLOSE

                            invoke EndDialog,hWnd,0

              .else

                            mov eax,FALSE

                            ret

              .endif

              mov eax,TRUE

              ret

DlgProc endp

 

 

SelectedInterface proc hWnd:HWND

              LOCAL hDC:HDC

              mov reqsize,0

    invoke GetIfTable,mInet,ADDR reqsize,FALSE

   

    invoke GlobalAlloc,GMEM_MOVEABLE,reqsize

    mov hInet,eax

  

    invoke GlobalLock,eax

    mov mInet,eax

   

    invoke GetIfTable,mInet,ADDR reqsize,FALSE

             

    mov ebx, mInet

    mov eax,[ebx]

    mov TypeCount,eax                      ;кількість интерфейсов

    add ebx,4

    mov eax,860

    mov ecx,h                                                                       ;zero-based индекс потрібного інтерфейса

    mul ecx

    add ebx,eax                            ;зсув на потрібний кусок

    assume ebx: PTR MIB_IFROW

 

             

              invoke GetDC,hWnd

              mov hDC,eax

             

              mov eax,[ebx].dwInOctets

              xor edx,edx

              idiv numdiv

              mov divResIn,eax

                                         

              xor eax,eax

              mov eax,[ebx].dwOutOctets

              xor edx,edx

              idiv numdiv

              mov divResOut,eax

             

                invoke wsprintf,addr buf,addr formInOctets,divResIn

              invoke TextOut,hDC,280,60,addr buf,sizeof buf

             

              invoke wsprintf,addr buf1,addr formOutOctets,divResOut

              invoke TextOut,hDC,280,80,addr buf1,sizeof buf1

             

              invoke wsprintf,addr buf2,addr formSpeed,[ebx].dwIndex

              invoke TextOut,hDC,280,100,addr buf2,sizeof buf2

             

              mov ebx,limit1

             

              .if cOut!=0

                            mov eax, divResOut

                            mov traff,eax

              .elseif

                            mov eax, divResIn

                            mov traff,eax             

              .endif

             

              .if traff>ebx && ebx !=0

                           

                            invoke KillTimer,hWnd,0             

                            invoke MessageBox,NULL,ADDR LimitString,ADDR LimitName,MB_ICONWARNING+MB_OKCANCEL

                           

                            .if eax == IDOK             

                                          .if closeCon!=0

                                                        invoke InternetHangUp,5,0

                                                        invoke InternetHangUp,16,0

                                          .endif

                                          invoke ExitProcess,0

                            .elseif

                                          invoke SetTimer,hWnd,0,1200,0

                                          invoke SendMessage,he,TBM_SETPOS,1,0

                                          invoke SetDlgItemText,hWnd,1010,NULL

                                          mov limit1,0

                            .endif             

              .endif

 

 

              invoke ReleaseDC,hWnd,hDC

 

              assume ebx: NOTHING

             

              invoke GlobalUnlock,mInet

              invoke GlobalFree,hInet

             

              ret

SelectedInterface endp

 

CountInterfaces proc hWnd:HWND

next_item:

              inc i

              mov reqsize,0

    invoke GetIfTable,mInet,ADDR reqsize,FALSE

   

    invoke GlobalAlloc,GMEM_MOVEABLE,reqsize

    mov hInet,eax

    invoke GlobalLock,eax

    mov mInet,eax

   

    invoke GetIfTable,mInet,ADDR reqsize,FALSE

 

    mov ebx, mInet

    mov eax,[ebx]

    mov TypeCount,eax        ;кількість интерфейсов

    add ebx,4

    mov eax,860

    mov ecx,i                                                         ;zero-based индекс потрібного інтерфейса

    mul ecx

    add ebx,eax               ;зсув на потрібний кусок

    assume ebx: PTR MIB_IFROW

   

              .if [ebx].bDescr==NULL

                            ret

              .else

                            invoke SendMessage,hComBox,CB_ADDSTRING,0,addr [ebx].bDescr

              .endif

   

    invoke GlobalUnlock,mInet

              invoke GlobalFree,hInet

              jmp next_item

              assume ebx: NOTHING

 

              ret

CountInterfaces endp

 

 

end Start

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 



Информация о работе Програма для обліку інтернет трафіку