elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Escapar de un Ciclo con GetAsyncKeyState
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Escapar de un Ciclo con GetAsyncKeyState  (Leído 7,917 veces)
snoopty

Desconectado Desconectado

Mensajes: 86


Ver Perfil
Escapar de un Ciclo con GetAsyncKeyState
« en: 13 Septiembre 2021, 09:51 am »

Hola a todos ! En este Código no logro que al apretar la Tecla " F1 " éste finalice e imprima la línea  [ cout<<"PROGRAMA TERMINADO"<<endl; ]
Intenté " la forma sin & 0x8000" pero - -aunque ninguna de las dos formas de GetAsyncKeyState al Compilar me arrojaba Error -- tampoco lo logré.  Cada vez que oprimo F1 o bien me repetía el anterior Número ingresado, o bien se generaba como un Overflow con Pantalla Azul ( con Contador de 0 a 100 ) o se quedaba tildada la PC.
Luego de que me ocurrió ese Overflow " me desapareció el Dev-C++ EMBARCADERO " ;
((aunque no es la primera vez que me ocurre)) LUEGO, como alternativa sigo con Dev-C++ 5.11 o bien vuelvo a instalar EMBARCADERO
    
#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
int a;
int b;
int c;


while (!(GetAsyncKeyState(VK_F1) & 0x8000))
{

cout<<"Ingrese a"<<endl;
cin>>a;
 
cout<<"Ingrese b"<<endl;
cin>>b;

c=(a+b);

cout<<"LA SUMA ES  :"<<c<<endl;  

}
   
cout<<"PROGRAMA TERMINADO"<<endl;    
return 0;
}
   
/* Gracias por leer el Post */



« Última modificación: 13 Septiembre 2021, 09:56 am por snoopty » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Escapar de un Ciclo con GetAsyncKeyState
« Respuesta #1 en: 13 Septiembre 2021, 18:13 pm »

Usa etiquetas GeSHi para poner tu código, lo encontrarás como desplegable en la barra de botones del post.

Respondiendo a tu mensaje cambia ese 0x8000 por un 1.
El 0x8000 lo que hace es mirar si la tecla se está pulsando durante la llamada a la función, el 1 informa si desde la anterior llamada a la función se ha pulsado la tecla, es decir, informa si la tecla en algún momento ha sido pulsada. Creo que ese es el comportamiento que estás buscando.

Aquí está la información al completo de cómo funciona: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getasynckeystate


En línea

snoopty

Desconectado Desconectado

Mensajes: 86


Ver Perfil
Re: Escapar de un Ciclo con GetAsyncKeyState
« Respuesta #2 en: 15 Septiembre 2021, 10:36 am »

Gracias ! SI me podrías explicar un poco lo de Etiquetas Geshin para dar formato para emprolijar el código como vos decís, también te lo agradecería.
Saludos !
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Escapar de un Ciclo con GetAsyncKeyState
« Respuesta #3 en: 15 Septiembre 2021, 15:15 pm »

Si cuando vas a escribir un nuevo post o una respuesta miras la barra de herramientas que hay justo encima del cuando de entrada, hay una lista desplegable que dice Código GeSHi. En ella hay muchos lenguajes. Debes elegir con el que vas a escribir el trozo de código.

Automáticamente aparecerá un par de etiquetas en el cuadro de escritura entre corchetes con code=lenguaje y /code. Entre las dos etiquetas escribes tu código.
En línea

snoopty

Desconectado Desconectado

Mensajes: 86


Ver Perfil
Re: Escapar de un Ciclo con GetAsyncKeyState
« Respuesta #4 en: 16 Septiembre 2021, 01:10 am »

Gracias !
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con GetAsyncKeyState
Programación Visual Basic
oPen syLar 0 1,581 Último mensaje 6 Diciembre 2006, 15:41 pm
por oPen syLar
Problema con la API GetAsyncKeyState vb.net
.NET (C#, VB.NET, ASP)
Senior++ 3 3,900 Último mensaje 21 Marzo 2012, 22:24 pm
por kub0x
Ayuda GetAsyncKeyState()
Programación C/C++
Luchoz95 8 5,635 Último mensaje 7 Abril 2013, 16:29 pm
por 85
bromilla con GetAsyncKeyState
Programación Visual Basic
asdexiva 2 2,570 Último mensaje 20 Octubre 2013, 14:52 pm
por asdexiva
Ciclo Do While anidado que no coge al ciclo interior
Programación Visual Basic
Baldomero123 1 7,016 Último mensaje 4 Enero 2018, 14:19 pm
por Baldomero123
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines