Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Stakewinner00 en 12 Noviembre 2012, 18:21 pm



Título: [Aporte] Aporte
Publicado por: Stakewinner00 en 12 Noviembre 2012, 18:21 pm
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
  1. #include <windows.h>
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <fstream>
  5. #include <list>
  6. #include <string>
  7.  
  8. using namespace std;
  9.  
  10. int main(int argc,char* argv)
  11. {
  12.  
  13. POINT cursorPos;
  14.        GetCursorPos(&cursorPos);
  15.        int x = 0;
  16.        x = cursorPos.x;
  17.        int y = 0;
  18.        y = cursorPos.y;
  19.  
  20.  
  21.  
  22. int a=0;
  23. int xx[1000];
  24. int yy[1000];
  25. char str[256];
  26. int lat=0, time=0;
  27. float lat2=0, tlat = 0, buc=0;
  28. /*while ("") {
  29. GetCursorPos(&cursorPos);
  30.         x = cursorPos.x;
  31.             y = cursorPos.y;
  32. Sleep(500);
  33. system("CLS");
  34. cout << x << " , " << y;
  35.  
  36. }*/
  37.  
  38. cout << "OPCIONES" << endl;
  39. cout << "1.Grabar y reproducirlo al instante" << endl << "2.Grabar y guardarlo en un archivo" << endl << "3.Abrir archivo"<< endl ;
  40. int o;
  41. cin >> o;
  42.  
  43. cout << endl << endl <<"Latencia (normal 50):: ";
  44.   cin >> lat2;
  45. lat=int(lat2);
  46. cout << endl << endl << "Duracion en segundos:: ";
  47. cin >> time;
  48.    tlat=lat2/1000;
  49. buc=time/tlat;
  50. buc=int(buc);
  51. if (o==2) {
  52. system("CLS");
  53.  
  54. cout << "Nombre del archivo:: ";
  55. cin.get();
  56. cin.getline (str,256);
  57.   ofstream outfile (str,ofstream::binary);
  58.   a=0;
  59. system ("CLS");
  60. cout << "Faltan 10 segundos para que comienze a reproducirse.";
  61. system ("CHOICE /T 10 /C ync /CS /D y > nul");
  62. cout << endl << "COMENZANDO A GRABAR";
  63. while (a!=buc) {
  64. xx[a]=x;
  65. yy[a]=y;
  66.        GetCursorPos(&cursorPos);
  67.        x = cursorPos.x;
  68.            y = cursorPos.y;
  69. Sleep(lat);
  70. a++;
  71. }
  72. a=0;
  73. cout << endl << endl << "GUARDANDO";
  74. while (a!=buc) {
  75. cout << xx[a] << "," << yy[a] << ";" << endl;
  76. outfile << xx[a] << "," << yy[a];
  77. if (a+1==buc) {
  78. outfile << ";" << "::::";
  79. } else {
  80. outfile << ";" << endl;
  81. }
  82. a++;
  83. }
  84. cout << endl << "GUARDADO FINALIZADO";
  85.  
  86. } else if (o==1) {
  87. system("CLS");
  88. a=0;
  89. while (a!=buc) {
  90. xx[a]=x;
  91. yy[a]=y;
  92.  
  93.        GetCursorPos(&cursorPos);
  94.        x = cursorPos.x;
  95.            y = cursorPos.y;
  96. Sleep(lat);
  97. a++;
  98. }
  99. a=0;
  100. while (a!=buc){
  101. SetCursorPos(xx[a], yy[a]);
  102.  mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, GetMessageExtraInfo());
  103. Sleep(lat);
  104. a++;
  105. }
  106. } else if (o==3) {
  107. system("CLS");
  108.   cout << "Nombre del archivo: ";
  109. cin.get();
  110. cin.getline (str,256);
  111.       ifstream arc;
  112.  arc.open (str);    
  113. char c;  
  114. a=0;
  115. string s="";
  116. int posx, posy;
  117. system ("CLS");
  118. cout << "Faltan 10 segundos para que comienze a reproducirse.";
  119. system ("CHOICE /T 10 /C ync /CS /D y > nul");
  120. int i=0;;
  121.   while (c!=':')  
  122.  {
  123.  s="";
  124.  cout << c;
  125.   while ((c!=',')&&(i==0)){
  126.      c = arc.get();
  127.     s = s + c;
  128. }
  129. i=1;
  130. posx=atoi(s.c_str());
  131. s="";
  132. while ((c!=';')&&(i==1)){
  133.     c = arc.get();
  134.     s = s + c;
  135. }
  136. if (c==';') {
  137.  c = arc.get();
  138. }
  139. i=0;
  140. posy=atoi(s.c_str());
  141. xx[a]=posx;
  142. yy[a]=posy;
  143. a++;
  144. }
  145.   int aa=a;
  146.   a=0;
  147.   while (a!=aa) {
  148.       Sleep(lat);
  149. SetCursorPos(xx[a], yy[a]);  
  150.   a++;
  151. }
  152. }
  153. }


Título: Re: [Aporte] Aporte
Publicado por: Stakewinner00 en 14 Noviembre 2012, 12:13 pm
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??


Título: Re: [Aporte] Aporte
Publicado por: rir3760 en 14 Noviembre 2012, 16:32 pm
Sin animo de molestarte: tienes que explicarte de una forma mas clara.

Como puedo generar un vector aleatorio que reserve un espacio dinamicamente??
En C++ puedes utilizar la clase vector (http://www.cplusplus.com/reference/stl/vector/), para ejemplos de su uso puedes utilizar el motor de búsqueda de los foros.

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??
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


Título: Re: [Aporte] Aporte
Publicado por: Stakewinner00 en 14 Noviembre 2012, 16:39 pm
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.