Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Un problemita alguien? soy novato

Estas en el tema de Un problemita alguien? soy novato en el foro de C/C++ en Foros del Web. Alguien por favor miren lo pasa es que tengo los códigos de este Autoclick que conseguí y lo puse en español etc y con F1 ...
  #1 (permalink)  
Antiguo 17/01/2014, 16:57
 
Fecha de Ingreso: enero-2014
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Un problemita alguien? soy novato

Alguien por favor miren lo pasa es que tengo los códigos de este Autoclick que conseguí y lo puse en español etc y con F1 se añade una posición y esa posicion se queda guardada en el autoclick y cuando presionas F3 se va a esa posicion y se activa el AutoClick pero cuando presiono F4 se apaga ok.. pero el proyecto se cierra no se algún codigo que hay que editar para que no se cierre o cambiar lo que quiero es que no se cierre y se vuelvo a presionar F3 se encienda y vaya a esa posicion no se algun codigo que hay que cambiar por otro por favor alguien que tenia o sabe que es lo que esta cerrando el autoclick cuando lo apago aquí les dejo el codigo y me dicen que tengo que cambiar soy novato si me ayudan les agradeceria alguien que copie el codigo y lo corra en el C++ y vea el problema el problema es que cuando presiono F4 osea desactivalo se cierra y no quiero eso quiero que siga funcionando

Código C++:
Ver original
  1. #include <windows.h>
  2. #include <cstdlib>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char* argv[]) {
  8.     int delay = 0;
  9.     int positions = 0;
  10.     POINT cursorPos[256];
  11.     SetConsoleTitleA("Andromeda 0.1");
  12.     cout << "Bienvenido a Andromeda 0.1\n";
  13.     cout << "Tiempo que se tomara los clicks (en milisegundos): ";
  14.     cin >> delay;
  15.     cout << "1. Para agregar posicion presione F1\n";
  16.     cout << "2. Presione F3 para empezar\n";
  17.    
  18.     for(;; Sleep(200)) {
  19.         if(GetAsyncKeyState(VK_F1)) {
  20.             GetCursorPos(&cursorPos[positions]);
  21.             cout << "Posicion actual " << positions + 1 << ": " << cursorPos[positions].x << ' ' << cursorPos[positions].y << '\n';
  22.             positions += 1;
  23.         }
  24.         if(GetAsyncKeyState(VK_F3)) {
  25.             if(positions == 0) {
  26.                 GetCursorPos(&cursorPos[positions]);
  27.                 positions = 1;
  28.             }
  29.             break;
  30.         }
  31.     }
  32.  
  33.     cout << "Andromeda iniciado\n";
  34.     cout << "Presione F4 para detener\n";
  35.  
  36.     int pos = 0;
  37.     for(;;Sleep(delay)) {
  38.         if(GetAsyncKeyState(VK_F4))
  39.             break;
  40.         SetCursorPos(cursorPos[pos % positions].x, cursorPos[pos % positions].y);
  41.         mouse_event(MOUSEEVENTF_LEFTDOWN, cursorPos[pos % positions].x, cursorPos[pos % positions].y, 0, 0);
  42.         mouse_event(MOUSEEVENTF_LEFTUP, cursorPos[pos % positions].x, cursorPos[pos % positions].y, 0, 0);
  43.         pos++;
  44.     }
  45.  
  46.     cout << "Gracias por utilizar Andromeda 0.1\n";
  47.     Sleep(10000);
  48.     return 0;

Última edición por fooztt; 17/01/2014 a las 17:09 Razón: P
  #2 (permalink)  
Antiguo 17/01/2014, 18:08
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Un problemita alguien? soy novato

Pues tu noción de lo que hace el programa es errónea. Con F1 y F3 configuras la posición (no se que quiso hacer el programador ahí), y después automáticamente te envia el cursor a esa posición cada determinado tiempo (los milisegundos que especificaste al comenzar). Con F4 detenes.

Por cierto si estás intentando usarlo en un juego eso nunca te funcionará.

  #3 (permalink)  
Antiguo 17/01/2014, 18:29
 
Fecha de Ingreso: enero-2014
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Un problemita alguien? soy novato

Amigo el programa funciona bien como yo explico ahí pero cuando desactivo con el F4 se cierra debe haber un código que lo cierre y no como tu dices mira con F1 se selecciona la parte que quieres que vaya el click y con F3 enciende el programa y se va directamenta a la parte seleccionada
y con F4 se detiene no se porque se cierra cuando presiono F4 podrias ayudarme?
  #4 (permalink)  
Antiguo 17/01/2014, 21:34
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Un problemita alguien? soy novato

Pues justamente así es como te dije que funciona el programa. Y claro, con la tecla F4 se cierra, para eso está configurada. Qué esperas que haga la tecla F4?
  #5 (permalink)  
Antiguo 17/01/2014, 21:50
 
Fecha de Ingreso: enero-2014
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Un problemita alguien? soy novato

Cita:
Iniciado por carbon Ver Mensaje
Pues justamente así es como te dije que funciona el programa. Y claro, con la tecla F4 se cierra, para eso está configurada. Qué esperas que haga la tecla F4?
Pues amigo quiero que cuando presione la tecla F4 no se cierre que siga funcionando si puedes ayudarme decirme que hago que tengo que cambiar me harias un gran favor en serio
  #6 (permalink)  
Antiguo 17/01/2014, 22:03
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Un problemita alguien? soy novato

Simplemente borra estas dos líneas:

Código C++:
Ver original
  1. if(GetAsyncKeyState(VK_F4))
  2.     break;

  #7 (permalink)  
Antiguo 17/01/2014, 23:31
 
Fecha de Ingreso: enero-2014
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Un problemita alguien? soy novato

Cita:
Iniciado por carbon Ver Mensaje
Simplemente borra estas dos líneas:

Código C++:
Ver original
  1. if(GetAsyncKeyState(VK_F4))
  2.     break;

Mira men sere lo mas claro que pueda ser el problema esta en el
Código C++:
Ver original
  1. break;
Porque si quito estas dos líneas:
Código C++:
Ver original
  1. if(GetAsyncKeyState(VK_F4))
  2.     break;
el autoclick no voy a poder detener cuando fui a darle al F3 se quedo pillado, ni encontraba que hacer tuve que reiniciar el equipo como he dicho es el
Código C++:
Ver original
  1. break;
Quiero que autoclick se detenga de hacer clicks cuando presione la tecla F4, ?porque si enciendo como voy a apagar? Seguro haz usado alguna vez un AutoClick que con tal tecla se prenda y con tal tecla se apague eso es lo que quiero, perdón si estoy metiendo este tema muy lejos y gracias por estar respondiendo yo se que me puedes ayudar pero creo que no me estoy explicando bien pero ya veremos que se hace.

Última edición por fooztt; 18/01/2014 a las 00:07
  #8 (permalink)  
Antiguo 18/01/2014, 11:14
 
Fecha de Ingreso: enero-2012
Ubicación: Buenos Aires
Mensajes: 745
Antigüedad: 12 años, 3 meses
Puntos: 35
Respuesta: Un problemita alguien? soy novato

Ya entendí, tu quieres desactivarlo / activarlo con F4.

Código C++:
Ver original
  1. #include <windows.h>
  2. #include <cstdlib>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. bool bEnabled = true;
  8.  
  9. DWORD WINAPI KeyboardManager(LPVOID lpvParam)
  10. {
  11.     while (1)
  12.     {
  13.         if (GetAsyncKeyState(VK_F4))
  14.             bEnabled = !bEnabled;
  15.  
  16.         Sleep(300);
  17.     }
  18.  
  19.     return 0;
  20. }
  21.  
  22. int main(int argc, char* argv[]) {
  23.     int delay = 0;
  24.     int positions = 0;
  25.     POINT cursorPos[256];
  26.     HANDLE hThread;
  27.     SetConsoleTitleA("Andromeda 0.1");
  28.     cout << "Bienvenido a Andromeda 0.1\n";
  29.     cout << "Tiempo que se tomara los clicks (en milisegundos): ";
  30.     cin >> delay;
  31.     cout << "1. Para agregar posicion presione F1\n";
  32.     cout << "2. Presione F3 para empezar\n";
  33.  
  34.     for(;; Sleep(200)) {
  35.         if(GetAsyncKeyState(VK_F1)) {
  36.             GetCursorPos(&cursorPos[positions]);
  37.             cout << "Posicion actual " << positions + 1 << ": " << cursorPos[positions].x << ' ' << cursorPos[positions].y << '\n';
  38.             positions += 1;
  39.         }
  40.         if(GetAsyncKeyState(VK_F3)) {
  41.             if(positions == 0) {
  42.                 GetCursorPos(&cursorPos[positions]);
  43.                 positions = 1;
  44.             }
  45.             break;
  46.         }
  47.     }
  48.  
  49.     cout << "Andromeda iniciado\n";
  50.     cout << "Presione F4 para activar/desactivar\n";
  51.     cout << "F5 para salir." << endl;
  52.  
  53.     CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)KeyboardManager, &hThread, 0, NULL);
  54.  
  55.     int pos = 0;
  56.     for(;;Sleep(delay)) {
  57.         if (GetAsyncKeyState(VK_F5))
  58.             break;
  59.         if (bEnabled)
  60.         {
  61.             SetCursorPos(cursorPos[pos % positions].x, cursorPos[pos % positions].y);
  62.             mouse_event(MOUSEEVENTF_LEFTDOWN, cursorPos[pos % positions].x, cursorPos[pos % positions].y, 0, 0);
  63.             mouse_event(MOUSEEVENTF_LEFTUP, cursorPos[pos % positions].x, cursorPos[pos % positions].y, 0, 0);
  64.             pos++;
  65.         }
  66.     }
  67.  
  68.     CloseHandle(hThread);
  69.  
  70.     cout << "Gracias por utilizar Andromeda 0.1\n";
  71.     Sleep(1000);
  72.     return 0;
  73. }

Ahora se cierra con F5.

  #9 (permalink)  
Antiguo 18/01/2014, 11:40
 
Fecha de Ingreso: enero-2014
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Un problemita alguien? soy novato

Cita:
Iniciado por carbon Ver Mensaje
Ya entendí, tu quieres desactivarlo / activarlo con F4.

Código C++:
Ver original
  1. #include <windows.h>
  2. #include <cstdlib>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. bool bEnabled = true;
  8.  
  9. DWORD WINAPI KeyboardManager(LPVOID lpvParam)
  10. {
  11.     while (1)
  12.     {
  13.         if (GetAsyncKeyState(VK_F4))
  14.             bEnabled = !bEnabled;
  15.  
  16.         Sleep(300);
  17.     }
  18.  
  19.     return 0;
  20. }
  21.  
  22. int main(int argc, char* argv[]) {
  23.     int delay = 0;
  24.     int positions = 0;
  25.     POINT cursorPos[256];
  26.     HANDLE hThread;
  27.     SetConsoleTitleA("Andromeda 0.1");
  28.     cout << "Bienvenido a Andromeda 0.1\n";
  29.     cout << "Tiempo que se tomara los clicks (en milisegundos): ";
  30.     cin >> delay;
  31.     cout << "1. Para agregar posicion presione F1\n";
  32.     cout << "2. Presione F3 para empezar\n";
  33.  
  34.     for(;; Sleep(200)) {
  35.         if(GetAsyncKeyState(VK_F1)) {
  36.             GetCursorPos(&cursorPos[positions]);
  37.             cout << "Posicion actual " << positions + 1 << ": " << cursorPos[positions].x << ' ' << cursorPos[positions].y << '\n';
  38.             positions += 1;
  39.         }
  40.         if(GetAsyncKeyState(VK_F3)) {
  41.             if(positions == 0) {
  42.                 GetCursorPos(&cursorPos[positions]);
  43.                 positions = 1;
  44.             }
  45.             break;
  46.         }
  47.     }
  48.  
  49.     cout << "Andromeda iniciado\n";
  50.     cout << "Presione F4 para activar/desactivar\n";
  51.     cout << "F5 para salir." << endl;
  52.  
  53.     CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)KeyboardManager, &hThread, 0, NULL);
  54.  
  55.     int pos = 0;
  56.     for(;;Sleep(delay)) {
  57.         if (GetAsyncKeyState(VK_F5))
  58.             break;
  59.         if (bEnabled)
  60.         {
  61.             SetCursorPos(cursorPos[pos % positions].x, cursorPos[pos % positions].y);
  62.             mouse_event(MOUSEEVENTF_LEFTDOWN, cursorPos[pos % positions].x, cursorPos[pos % positions].y, 0, 0);
  63.             mouse_event(MOUSEEVENTF_LEFTUP, cursorPos[pos % positions].x, cursorPos[pos % positions].y, 0, 0);
  64.             pos++;
  65.         }
  66.     }
  67.  
  68.     CloseHandle(hThread);
  69.  
  70.     cout << "Gracias por utilizar Andromeda 0.1\n";
  71.     Sleep(1000);
  72.     return 0;
  73. }

Ahora se cierra con F5.

Mínimo porque tengo que presionar 3 veces para apagar? osea 2 veces porque con F4 se prende pero para detener tengo que presionar F4, 2 veces para apagar quiero que se apague de una vez. XD de que vuelva a presionar F4 pero gracias. de todos modos gracias.
  #10 (permalink)  
Antiguo 18/01/2014, 11:51
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 8 meses
Puntos: 13
Respuesta: Un problemita alguien? soy novato

Él lo que quiere hacer, si no entendí mal, y esto.

Código C:
Ver original
  1. #include <windows.h>
  2. #include <cstdlib>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char* argv[]) {
  8.     int delay = 0;
  9.     int positions = 0;
  10.     POINT cursorPos[256];
  11.     SetConsoleTitleA("Andromeda 0.1");
  12.     cout << "Bienvenido a Andromeda 0.1\n";
  13.     cout << "Tiempo que se tomara los clicks (en milisegundos): ";
  14.     cin >> delay;
  15.     de_nuevo:
  16.     cout << "1. Para agregar posicion presione F1\n";
  17.     cout << "2. Presione F3 para empezar\n";
  18.    
  19.     for(;; Sleep(200)) {
  20.         if(GetAsyncKeyState(VK_F1)) {
  21.             GetCursorPos(&cursorPos[positions]);
  22.             cout << "Posicion actual " << positions + 1 << ": " << cursorPos[positions].x << ' ' << cursorPos[positions].y << '\n';
  23.             positions += 1;
  24.         }
  25.         if(GetAsyncKeyState(VK_F3)) {
  26.             if(positions == 0) {
  27.                 GetCursorPos(&cursorPos[positions]);
  28.                 positions = 1;
  29.             }
  30.             break;
  31.         }
  32.     }
  33.  
  34.     cout << "Andromeda iniciado\n";
  35.     cout << "Presione F4 para detener\n";
  36.  
  37.     int pos = 0;
  38.     for(;;Sleep(delay)) {
  39.         if(GetAsyncKeyState(VK_F4))
  40.             goto de_nuevo;
  41.         SetCursorPos(cursorPos[pos % positions].x, cursorPos[pos % positions].y);
  42.         mouse_event(MOUSEEVENTF_LEFTDOWN, cursorPos[pos % positions].x, cursorPos[pos % positions].y, 0, 0);
  43.         mouse_event(MOUSEEVENTF_LEFTUP, cursorPos[pos % positions].x, cursorPos[pos % positions].y, 0, 0);
  44.         pos++;
  45.     }
  46.  
  47.     cout << "Gracias por utilizar Andromeda 0.1\n";
  48.     Sleep(10000);
  49.     return 0;
  50. }

Disculpen ese goto ahí, se puede hacer mejor. Solo como ejemplo a ver si es lo que te apetece lograr.
  #11 (permalink)  
Antiguo 18/01/2014, 12:23
 
Fecha de Ingreso: enero-2014
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Un problemita alguien? soy novato

Cita:
Iniciado por guzzano Ver Mensaje
Él lo que quiere hacer, si no entendí mal, y esto.

Código C:
Ver original
  1. #include <windows.h>
  2. #include <cstdlib>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char* argv[]) {
  8.     int delay = 0;
  9.     int positions = 0;
  10.     POINT cursorPos[256];
  11.     SetConsoleTitleA("Andromeda 0.1");
  12.     cout << "Bienvenido a Andromeda 0.1\n";
  13.     cout << "Tiempo que se tomara los clicks (en milisegundos): ";
  14.     cin >> delay;
  15.     de_nuevo:
  16.     cout << "1. Para agregar posicion presione F1\n";
  17.     cout << "2. Presione F3 para empezar\n";
  18.    
  19.     for(;; Sleep(200)) {
  20.         if(GetAsyncKeyState(VK_F1)) {
  21.             GetCursorPos(&cursorPos[positions]);
  22.             cout << "Posicion actual " << positions + 1 << ": " << cursorPos[positions].x << ' ' << cursorPos[positions].y << '\n';
  23.             positions += 1;
  24.         }
  25.         if(GetAsyncKeyState(VK_F3)) {
  26.             if(positions == 0) {
  27.                 GetCursorPos(&cursorPos[positions]);
  28.                 positions = 1;
  29.             }
  30.             break;
  31.         }
  32.     }
  33.  
  34.     cout << "Andromeda iniciado\n";
  35.     cout << "Presione F4 para detener\n";
  36.  
  37.     int pos = 0;
  38.     for(;;Sleep(delay)) {
  39.         if(GetAsyncKeyState(VK_F4))
  40.             goto de_nuevo;
  41.         SetCursorPos(cursorPos[pos % positions].x, cursorPos[pos % positions].y);
  42.         mouse_event(MOUSEEVENTF_LEFTDOWN, cursorPos[pos % positions].x, cursorPos[pos % positions].y, 0, 0);
  43.         mouse_event(MOUSEEVENTF_LEFTUP, cursorPos[pos % positions].x, cursorPos[pos % positions].y, 0, 0);
  44.         pos++;
  45.     }
  46.  
  47.     cout << "Gracias por utilizar Andromeda 0.1\n";
  48.     Sleep(10000);
  49.     return 0;
  50. }

Disculpen ese goto ahí, se puede hacer mejor. Solo como ejemplo a ver si es lo que te apetece lograr.
Exactamente lo que estaba buscando, algo mas sabrás como potenciar para que de mas clicks osea que de mas clicks por segundo? Si no sabes gracias de todos modos y gracias a carbon por estar respondiendo

Etiquetas: favor, funcion, int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:34.