|
212
|
Programación / Programación C/C++ / Re: [?] Detectar un string en un archivo flash
|
en: 29 Julio 2013, 15:14 pm
|
Para hacer lo que quieres necesitas crear una interfaz en tu archivo flash para que sea capaz de proporcionarte esa información.
Lo que pasa que eso te limita a que el flash tiene que ser de cosecha propia... no te valen los que no hagas tú pues no incorporarán la interfaz que te comento.
El ejemplo que has encontrado es para realizar el proceso inverso, es decir, mandar textos a la aplicación flash.
Es que el flash no es mio... No hay alguna forma de buscar una cadena en la pantalla?? Aunque no sea en el propio flash?? o detectar pixeles de un color en concreto en la pantalla
|
|
|
216
|
Programación / Programación C/C++ / Re: [?] HWND a String (Otra Cosita)
|
en: 28 Julio 2013, 15:51 pm
|
Usa char en lugar de wchar_t ya que no estas en Unicode.
Solucionado, si no hay ningún otro fallo donde la haya cagado..
SaludosEDITOLo que quiero implementar ahora es una comprobacion de la ventana activa, es decir, si la ventana no es, por ejemplo, "Hola", que no añada el "- Adios" al final...
Tengo esto:#include <windows.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #include <iostream> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow) { HWND activa; //Ventana Activa HWND nonactive = NULL; //Ventana a modificar string Nombre_Ventana; activa = GetForegroundWindow(); //Obtenemos el nombre de la ventana activa int nCharacters = GetWindowTextLength(activa); //Calculamos el numero de caracteres del nombre de la ventana activa while(1) //Bucle Infinito { nCharacters = GetWindowTextLength(activa); //Calculamos el numero de caracteres del nombre de la ventana activa char *Nombre_Array = new char[nCharacters + 1]; //Creamos un Array con el numero de caracteres calculado anteriormente GetWindowText(activa, Nombre_Array, nCharacters + 1); //Obtenemos el nombre de la ventana activa y lo almacenamos en el array anterior Nombre_Ventana = ""; if (Nombre_Array = "Hola") { Nombre_Ventana = Nombre_Array; // Nombre_Ventana pasa a tener lo que tenia Nombre_Array printf("Cambiado Correctamente!"); Nombre_Ventana += " - Adios!"; //Añadimos una cadena a la ventana activa if(activa != nonactive) //Bucle: Si la ventana activa es diferente de la ventana a modificar... { SetWindowText(activa, Nombre_Ventana.c_str()); //Cambiamos el nombre de la ventana activa nonactive = activa; //La ventana a modificar es ahora la ventana activa } activa = GetForegroundWindow(); //Vovemos a obtener el nombre de la ventana activa delete[] Nombre_Array; Sleep(1000); //Esperamos... } else { printf("Fallo al Cambiar!"); return -1; } } return 0; }
|
|
|
217
|
Programación / Programación C/C++ / Re: [?] HWND a String
|
en: 28 Julio 2013, 13:59 pm
|
Quedaría así?#include <stdio.h> #include <windows.h> #include <iostream> using namespace std; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow) { HWND activa; //Ventana Activa HWND nonactive = NULL; //Ventana a modificar string Nombre_Ventana; activa = GetForegroundWindow(); //Obtenemos el nombre de la ventana activa int nCharacters = GetWindowTextLength(activa); //Calculamos el numero de caracteres del nombre de la ventana activa while(1) //Bucle Infinito { nCharacters = GetWindowTextLength(activa); //Calculamos el numero de caracteres del nombre de la ventana activa wchar_t *Nombre_Array = new wchar_t[nCharacters + 1]; //Creamos un Array con el numero de caracteres calculado anteriormente GetWindowText(activa, Nombre_Array, nCharacters + 1); //Obtenemos el nombre de la ventana activa y lo almacenamos en el array anterior Nombre_Ventana = ""; Nombre_Ventana = Nombre_Array; // Nombre_Ventana pasa a tener lo que tenia Nombre_Array Nombre_Ventana += " - Adios"; //Añadimos una cadena a la ventana activa if(activa != nonactive) //Bucle: Si la ventana activa es diferente de la ventana a modificar... { SetWindowText(activa, Nombre_Ventana.c_str()); //Cambiamos el nombre de la ventana activa nonactive = activa; //La ventana a modificar es ahora la ventana activa } activa = GetForegroundWindow(); //Vovemos a obtener el nombre de la ventana activa delete[] Nombre_Array; Sleep(1000); //Esperamos... } return 0; }
ERRORES
|24|error: cannot convert 'wchar_t*' to 'LPSTR {aka char*}' for argument '2' to 'int GetWindowTextA(HWND, LPSTR, int)'|
|28|error: invalid conversion from 'wchar_t*' to 'char' [-fpermissive]|
*codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_string.h|562|error: initializing argument 1 of 'std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(_CharT) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::basic_string<_CharT, _Traits, _Alloc> = std::basic_string<char>]' [-fpermissive]|
|
|
|
218
|
Programación / Programación C/C++ / Re: consulta , sobre ficheros
|
en: 28 Julio 2013, 13:45 pm
|
Es un código que hice que quizás te puede ayudar #include <stdlib.h> #include <stdio.h> #include <string.h> int main(void) { FILE *fichero; char Filename[256]; char caracterread; char characterwirte[512]; char Salir; printf("Introduzca el nombre del fichero que desea crear: "); fgets(Filename, 256, stdin); fichero = fopen(Filename, "wt"); printf("\n==Editor==\n\n"); do { printf(""); gets(characterwirte); strcat(characterwirte, "\n"); fwrite(&characterwirte, strlen(characterwirte), 1, fichero); printf("\nDesea seguir escribiendo? (s/n)"); Salir=getchar(); fflush(stdin); } while((Salir=='S') || (Salir=='s')); fclose(fichero); fflush(stdin); printf("Desea revisar el documento? (s/n)"); Salir=getchar(); if((Salir=='S') || (Salir=='s')) fichero = fopen(Filename, "rt"); { if (fichero == NULL) { printf("\nError: No se ha podido abrir el archivo."); } else { caracterread = fgetc(fichero); while(feof(fichero)==0) { printf("%c", caracterread); caracterread = fgetc(fichero); } fclose(fichero); } } fflush(stdin); printf("\n\nPresione Intro para finalizar..."); getchar(); }
Al principio falta añadir una comprobación al crear el archivo, pero bueno, quizás puedes coger alguna parte del código
Saludos
|
|
|
219
|
Programación / Programación C/C++ / Re: [?] HWND a String
|
en: 28 Julio 2013, 13:37 pm
|
al ejecutarse no sabe cuanto ocupará el array y sqbrá dios que te está reservando.
Yo tampoco lo veo tan claro, pero supongo que al poner esto:int nCharacters = GetWindowTextLength(activa); //Calculamos el numero de caracteres del nombre de la ventana activa char Nombre_Array[nCharacters]; //Creamos un Array con el numero de caracteres calculado anteriormente
Lo que hace es calcular la longitud del nombre de la ventana activa, y si vale 5, el array se crea reservando 5
Lo compilo con CodeBlocks y MinGW, como lo puedo hacer standard?
|
|
|
|
|
|
|