Autor
|
Tema: [AYUDA] con mi aplicacion porfa (Leído 2,460 veces)
|
dalvisito
Desconectado
Mensajes: 3
|
Hola soy nuevo con c++ y quisiera que me ayudaran. mi aplicaion es la sigiente. el problema que tengo es que tengo que entrar a la consola para ejecutar las opciones, lo que quiero es minimizar la aplicacion y digamso precionar 'F8' y que la aplicacion ejecute la opcion 1. #include <stdio.h> #include <stdlib.h> #include <windows.h> using namespace std; int main() { int fin = 0; int opcion; while (fin == 0) { printf("Menu Del AutoClick\n\n"); printf("\t1] AutoClick Izquierdo.\n"); printf("\t2] AutoClick Derecho.\n"); switch(opcion) { case 1: printf("AutoClick Izquierdo Empieza en 10 Segundos.\n"); for(signed int i = 10; i >= 0; i--) { Sleep(1000); } printf("Para Detener Precione 'F8'\n"); while(1 && !GetAsyncKeyState(VK_F8)){ mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); Sleep(20); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); Sleep(20); } break; case 2: printf("AutoClick Derecho Empieza en 10 Segundos.\n"); for(signed int i = 10; i >= 0; i--) { Sleep(1000); } printf("Para Detener Precione 'F9'\n"); while(1 && !GetAsyncKeyState(VK_F9)){ mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0); Sleep(20); mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0); Sleep(20); } break; case 3: fin = 1; printf("La Aplicacion a Finalizado\n\n"); break; default: fin = 0; break; } } return 0; }
|
|
« Última modificación: 18 Noviembre 2010, 17:28 pm por Littlehorse »
|
En línea
|
|
|
|
fary
|
El problema que tienes en tu codigo es que haces un scanf y paras el programa, y si lo minimizas no puede recibir datos y pasar el scanf... para hacer lo que tu quieres no tienes que hacer scanf simplemente esperar a que se pulse la tecla que quieres ( con getasynckeystate como tu bien haces o con hooks) y listo.
salu2!
|
|
|
En línea
|
Un byte a la izquierda.
|
|
|
dalvisito
Desconectado
Mensajes: 3
|
Si es verdad lo que tu dices. pero si quito el "scanf" se crea un bucle infinito hasta que yo precione la alguna tecla. ese es en realidad mi problema.
|
|
|
En línea
|
|
|
|
fary
|
Si es verdad lo que tu dices. pero si quito el "scanf" se crea un bucle infinito hasta que yo precione la alguna tecla. ese es en realidad mi problema.
Es normal que pase eso... Creo que tu quieres seguir utilizando la consola aunque no se haya pulsado la tecla, para eso tienes que usar multihilos, mirate la funcion CreateThread. salu2!
|
|
|
En línea
|
Un byte a la izquierda.
|
|
|
dalvisito
Desconectado
Mensajes: 3
|
Bueno pensando y analizando los comentarios de "Drinky94" llege a esto, para evitar un bucle infinito que consuma recurso le puse un Sleep(1000);. ahora no se hasta que punto sera una buena programacion o simplemente estoy haciendo sonseras.
#include <stdio.h> #include <stdlib.h>
#include <iostream> #include <windows.h>
using namespace std;
int main() { int fin = 0; int opcion; int sasa; while (fin == 0) { system("cls"); cout << "Menu Del AutoClick \n\n"; cout << "\tF8] AutoClick Izq.\n"; cout << "\tF10] AutoClick Der.\n"; cout << "\tF12] Salir.\n";
if(GetAsyncKeyState(VK_F8)) { cout<<"\aPara Detener Precione 'F8'"<<endl; Sleep(1000); while(1 && !GetAsyncKeyState(VK_F8)){ mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); Sleep(20); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); Sleep(20); } } if(GetAsyncKeyState(VK_F10)) { cout<<"\aPara Detener Precione 'F10'"<<endl; Sleep(1000); while(1 && !GetAsyncKeyState(VK_F10)){ mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); Sleep(20); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); Sleep(20); } } if(GetAsyncKeyState(VK_F12)) { cout<<"\aLa Aplicacion a Finalizado."<<endl; fin = 1; } Sleep(1000); } return 0; }
|
|
|
En línea
|
|
|
|
|
|