![]() |
Помогите плиз подправить прогу на Assembler
Есть прога(текст ниже)...Она издает гудок при нажатии каждой 2 кропки,необходимо чтобы при нажатии каждой 2 клавиши она издавала щелчек.Подскажите где подправить и что
.386 .model flat, stdcall option casemap:none ;подключаемые модули include c:\masm32\include\windows.inc include c:\masm32\include\user32.inc include c:\masm32\include\kernel32.inc include c:\masm32\include\gdi32.inc ;подключаемые библиотеки includelib c:\masm32\lib\user32.lib includelib c:\masm32\lib\kernel32.lib includelib c:\masm32\lib\gdi32.lib WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD ;Инициализация переменных .data szDisplayName DB "Курсовая СПО Иванюк Дмитрий Иванович",0 CommandLine DD 0 hWnd DD 0 hInstance DD 0 szClassName DB "Demo_Class", 0 sTitle DB "Введите символ", 0 sMsg DB "Вы ввели вторую букву : " cll DB ?, 0 ;переменная хранящая введенный символ koll DB 0 .code start: push NULL call GetModuleHandle mov hInstance, EAX call GetCommandLine mov CommandLine, EAX push SW_SHOWDEFAULT push CommandLine push NULL push hInstance call WinMain push EAX call ExitProcess WinMain proc hInst :DWORD, hPrevInst :DWORD, CmdLine :DWORD, CmdShow :DWORD ;локальные переменные процедуры LOCAL wc :WNDCLASSEX LOCAL msg :MSG ;инициализация окна mov wc.cbSize, sizeof WNDCLASSEX mov wc.style, CS_HREDRAW or CS_VREDRAW mov wc.lpfnWndProc, offset WndProc mov wc.cbClsExtra, NULL mov wc.cbWndExtra, NULL push hInst pop wc.hInstance mov wc.hbrBackground, COLOR_BTNFACE+9 mov wc.lpszMenuName, NULL mov wc.lpszClassName, offset szClassName invoke LoadIcon, NULL, IDI_APPLICATION mov wc.hIcon, EAX invoke LoadCursor, NULL, IDC_ARROW mov wc.hCursor, EAX mov wc.hIconSm, 0 invoke RegisterClassEx, ADDR wc invoke CreateWindowEx, WS_EX_OVERLAPPEDWINDOW, ADDR szClassName, \ ADDR szDisplayName, WS_OVERLAPPEDWINDOW, \ CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, \ CW_USEDEFAULT, NULL, NULL, hInst, NULL mov hWnd, EAX invoke ShowWindow, hWnd, SW_SHOWNORMAL invoke UpdateWindow, hWnd ;______________________ StartLoop: push 0 push 0 push NULL lea EAX, msg push EAX call GetMessage cmp EAX, 0 je ExitLoop lea EAX, msg push EAX call TranslateMessage lea EAX, msg push EAX call DispatchMessage jmp StartLoop ExitLoop: mov EAX,msg.wParam ret WinMain endp ;_____________________ WndProc proc hWin :DWORD, uMsg :DWORD, wParam :DWORD, lParam :DWORD, LOCAL hdc :HDC LOCAL ps :PAINTSTRUCT cmp uMsg, WM_PAINT jne next_1 invoke BeginPaint, hWnd, ADDR ps mov hdc, EAX lea EDX, ps push EDX push hWnd call EndPaint ret ;получение и обработка клавиш next_1: cmp uMsg, WM_CHAR jne next_2 mov EAX,wParam mov cll, AL ;возврат данных для окна ;проверка какая по счету буква cmp koll, 0 jz next_12 cmp koll, 1 jz next_11 next_11: mov koll, 0 jmp next_13 next_12: mov koll, 1 jmp next_2 next_13: push MB_OK push offset sTitle push offset sMsg push 0 call MessageBeep ;возпроизводит звук если messagebox то выводит окно ret ;вывод и закрытие окна по сигналу next_2: cmp uMsg, WM_DESTROY jne next_3 push NULL call PostQuitMessage xor EAX, EAX ret next_3: push lParam push wParam push uMsg push hWin call DefWindowProc ret WndProc endp end start |
Цитата:
Цитата:
|
Часовой пояс GMT +4, время: 05:11. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.