Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2013, 11:38   #1
Vacarme
 
Аватар для Vacarme
 
Регистрация: 27.03.2013
Сообщений: 3
По умолчанию Как осуществить выход из программы нажатием правой кнопки мышки? Ассемблер

Здравствуйте! Помогите, пожалуйста! Программа почти дописана... единственный вопрос - как сделать так, чтоб она выходила не по нажатию "enter", а по нажатию правой клавиши мышки? Писала под borland 3.1 (в досовской режиме).


#include <stdio.h>

void main ()
{

int i, step, line, column, fall, b, n1, n2, x1, x2, y1, y2;
char ascii=0, stroka=0, stolbec=0, fall2;

printf("enter height of fall <=25->");
scanf ( "%i", &fall);
fall2=fall;

asm{
mov ah,00 //funkcia ustanovki regima
mov al,03 //standartniy textovoi rezim 80/25
int 10h

mov ax, 03 //ochistit' ekran
int 10h

mov ah,02 //polojenie kursora
mov bh,00
mov dh,0 //stroka
mov dl,0 //stolbec
int 10h //Vyzvat' BIOS
}

//vvodim 10 simvolov
for(i=0;i<10;i++)
{

asm{ //vvesti simvoly
mov ah,00h
int 16h

mov ah,09 //Funktsiya vyvoda
mov bh, 00 //Nomer stranitsy (tekst.rezh.)
mov bl, 07 //Atribut ili tsvet, yarko beliy 15
mov cx, 1 //Chislo povtoreniy simvola
int 10h

mov ah,02
mov bh,00 //stranica 0
mov dh,0
inc dl //stolbec, uvelichivaetcia na 1
int 10h
}

}




//opadanie simvolov
for(step=0, line=1; step<fall+column; step++, line++)//vneshniy massiv
{


for(column=0;column<10;column++)//10 stolbcov
{

asm{
mov ah,02
mov bh,00
mov dh,0
mov dl,0
int 10h
}

for(i=0;i<column;i++) //skoliko stolbcov
{
asm{
mov ah,02
mov bh,00
mov dh,0
inc dl //stolbec, uvelichivaetcya na 1
int 10h
}
}//for(i=0;i<column;i++) //skolko stolbcov


asm{
mov stolbec, dl//zapisyvaem stolbec
}

for(i=0; i<line-column; i++) //skolko stroc
{

asm{
mov stroka, dh //zapisyvaem stroku h - char
}

if(i==line-column-1 && line-column-1<fall)
{

asm{
mov ah, 08 //chtenie, zapisi v registr AL
mov bh, 00
int 10h
mov ascii,al //zapisyvaem prochitannoe v pamyat
}

for(n1=0, n2=0; n1==0 && n2==0//myshka
{

asm{
mov ax,1 //vklyuchaem mysh
int 33h

mov ax,7
mov cx,0 //min x
mov dx,420 //max x
int 33h

mov ax,8
mov cx,0 //min y
mov dx,180 //max y
int 33h

mov ax, 0xA
mov bx, 0
mov cx, 0xFFFF
mov dx, 0x7700
int 33h

mov ax,5
mov bx,0
int 33h
mov b,ax
mov n1,bx
mov x1,cx
mov y1,dx

mov ax,5
mov bx,1
int 33h
mov b,ax
mov n2,bx
mov x2,cx
mov y2,dx

mov ax,2 //vyklyuchaem mysh
int 33h

}


}



asm{
mov ah,02
mov bh,00
mov dh,fall2 //stroka
inc dh
mov dl,0 //stolbec
int 10h
}

if(n1!=0)
printf(" \rleft x->%i y->%i", x1, y1);

else
printf(" \rright x->%i y->%i", x2, y2);

asm{
mov ah,02
mov bh,00
mov dh,stroka
mov dl,stolbec
int 10h

mov ah,09
mov al, 32 //Vyvodimyy probel
mov bh, 00
mov bl, 07
mov cx, 1
int 10h

mov ah,02
mov bh,00 //stranica 0
inc dh //stroka uvelichivaetcia na 1
int 10h
mov ah,09
mov al, ascii //Vyvodimyy simvol
mov bh, 00
mov bl, 07
mov cx, 1
int 10h
}

}

asm{
mov ah,02
mov bh,00
inc dh
int 10h
}

}


}


}

printf(" \r najmite pravoi knopkoi myshi dlya vyhoda");
getchar();
getchar();

}
Vacarme вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi выход из программы только с кнопки Решетова Алена Помощь студентам 6 06.03.2013 09:19
Как нажатием кнопки выйти из неактивной программы? Iceman Win Api 2 18.12.2009 21:21
Проблема с нажатием кнопки мышки Zeraim Общие вопросы Delphi 2 23.05.2008 18:33
Как запустить exe-шку нажатием кнопки???? Дамир Помощь студентам 3 04.02.2007 19:24