[Aporte] Aporte

Iniciado por Stakewinner00, 12 Noviembre 2012, 18:21 PM

0 Miembros y 1 Visitante están viendo este tema.

Stakewinner00

Mejore el codigo que habia echo y queria dejar aqui el código por si le sirve a alguien.

Aun falta mejorar muchas pero de momento funciona.

Lo que hace el programa es grabar los movimientos del raton y guardarlo en un log.
Código (cpp) [Seleccionar]
#include <windows.h>
#include <iostream>
#include <conio.h>
#include <fstream>
#include <list>
#include <string>

using namespace std;

int main(int argc,char* argv)
{

POINT cursorPos;
       GetCursorPos(&cursorPos);
       int x = 0;
       x = cursorPos.x;
       int y = 0;
       y = cursorPos.y;



int a=0;
int xx[1000];
int yy[1000];
char str[256];
int lat=0, time=0;
float lat2=0, tlat = 0, buc=0;
/*while ("") {
GetCursorPos(&cursorPos);
       x = cursorPos.x;
           y = cursorPos.y;
Sleep(500);
system("CLS");
cout << x << " , " << y;

}*/

cout << "OPCIONES" << endl;
cout << "1.Grabar y reproducirlo al instante" << endl << "2.Grabar y guardarlo en un archivo" << endl << "3.Abrir archivo"<< endl ;
int o;
cin >> o;

cout << endl << endl <<"Latencia (normal 50):: ";
  cin >> lat2;
lat=int(lat2);
cout << endl << endl << "Duracion en segundos:: ";
cin >> time;
   tlat=lat2/1000;
buc=time/tlat;
buc=int(buc);
if (o==2) {
system("CLS");

cout << "Nombre del archivo:: ";
cin.get();
cin.getline (str,256);
  ofstream outfile (str,ofstream::binary);
  a=0;
system ("CLS");
cout << "Faltan 10 segundos para que comienze a reproducirse.";
system ("CHOICE /T 10 /C ync /CS /D y > nul");
cout << endl << "COMENZANDO A GRABAR";
while (a!=buc) {
xx[a]=x;
yy[a]=y;
       GetCursorPos(&cursorPos);
       x = cursorPos.x;
           y = cursorPos.y;
Sleep(lat);
a++;
}
a=0;
cout << endl << endl << "GUARDANDO";
while (a!=buc) {
cout << xx[a] << "," << yy[a] << ";" << endl;
outfile << xx[a] << "," << yy[a];
if (a+1==buc) {
outfile << ";" << "::::";
} else {
outfile << ";" << endl;
}
a++;
}
cout << endl << "GUARDADO FINALIZADO";

} else if (o==1) {
system("CLS");
a=0;
while (a!=buc) {
xx[a]=x;
yy[a]=y;
     
       GetCursorPos(&cursorPos);
       x = cursorPos.x;
           y = cursorPos.y;
Sleep(lat);
a++;
}
a=0;
while (a!=buc){
SetCursorPos(xx[a], yy[a]);
 mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, GetMessageExtraInfo());
Sleep(lat);
a++;
}
} else if (o==3) {
system("CLS");
  cout << "Nombre del archivo: ";
cin.get();
cin.getline (str,256);
      ifstream arc;
 arc.open (str);    
char c;  
a=0;
string s="";
int posx, posy;
system ("CLS");
cout << "Faltan 10 segundos para que comienze a reproducirse.";
system ("CHOICE /T 10 /C ync /CS /D y > nul");
int i=0;;
  while (c!=':')  
 {
 s="";
 cout << c;
  while ((c!=',')&&(i==0)){
     c = arc.get();
    s = s + c;
}
i=1;
posx=atoi(s.c_str());
s="";
while ((c!=';')&&(i==1)){
    c = arc.get();
    s = s + c;
}
if (c==';') {
 c = arc.get();
}
i=0;
posy=atoi(s.c_str());
xx[a]=posx;
yy[a]=posy;
a++;
}
  int aa=a;
  a=0;
  while (a!=aa) {
      Sleep(lat);
SetCursorPos(xx[a], yy[a]);  
  a++;
}
}
}

Stakewinner00

#1
Como puedo generar un vector aleatorio que reserve un espacio dinamicamente??

Otra pregunta, que es mejor guardar los valores a medida que el mouse se va moviendo o guardar los valores en un vector y luego guardarlos como e echo??

rir3760

Sin animo de molestarte: tienes que explicarte de una forma mas clara.

Cita de: Stakewinner00 en 14 Noviembre 2012, 12:13 PMComo puedo generar un vector aleatorio que reserve un espacio dinamicamente??
En C++ puedes utilizar la clase vector, para ejemplos de su uso puedes utilizar el motor de búsqueda de los foros.

Cita de: Stakewinner00 en 14 Noviembre 2012, 12:13 PMOtra pregunta, que es mejor guardar los valores a medida que el mouse se va moviendo o guardar los valores en un vector y luego guardarlos como e echo??
Las dos opciones que das, en la practica, son lo mismo (revisa tu programa). ¿Te molesto si explicas en detalle lo que quieres hacer?

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

Stakewinner00

#3
Bueno pense que si tenia que abrir el archivo y escribir en el seria más lento que guardarlo en un vector para después escribir en el archivo. Ya que en el momento de grabar si abre el archivo pensé que grabaría los movimientos del raton un poco más lento.

Sobre lo que quiero hacer:

Al principio quería solo practicar un poco con la librería de windows.h luego pense en hacer un programa que grabara los clicks y movimientos del ratón.

De momento solo conseguí grabar los movimientos del ratón. Los clicks por lo que vi solo lo puedo guardarlos si genero una ventana.



Tras mucho pensar vi que no tenia ninguna gran utilidad, por lo que solo lo hago con fines autodidácticos.