elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con GetWindowText
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con GetWindowText  (Leído 2,301 veces)
juancaa

Desconectado Desconectado

Mensajes: 140


[ Img^(Img) = Real ]


Ver Perfil
Ayuda con GetWindowText
« en: 20 Marzo 2013, 13:10 pm »

Buenas, estoy intentando hacer un codigo en c++ para leer el texto de la ventana maximizada pero por algun motivo el texto no se lee apropiadamente...
Aquí les dejo el codigo:

Código
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <Windows.h>
  4.  
  5. using namespace std;
  6.  
  7. int _tmain(int argc, _TCHAR* argv[]) {
  8. TCHAR title[500];
  9. ZeroMemory(title, sizeof(title));
  10. HWND wnd = GetForegroundWindow();
  11.  
  12. while (true) {
  13. HWND current = GetForegroundWindow();
  14. if (current!=wnd) {
  15. wnd = current;
  16. GetWindowText(wnd, title, 400);
  17. cout << "Text: " << title << endl;
  18. }
  19. Sleep(50);
  20. }
  21. return 0;
  22. }
  23.  
  24.  

Estoy haciendo pruebas con el Visual Studio 2012 pero al ejecutar el programa este siempre me devuelve un valor sin sentido EJ: 01AB8D9 lo cual supongo que debe ser basura... Si alguien puede explicarme que estoy haciendo mal estaria muy agradecido!!


En línea

Que tengas un buen dia!
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Ayuda con GetWindowText
« Respuesta #1 en: 20 Marzo 2013, 19:03 pm »

Estas usando GetWindowText ( #ifdef UNICODE ) Al parecer version Unicode puedes cambiar a GetWindowTextA explicitamente o usar
otra funcion en lugar de cout como por ejemplo wprintf, además seria buena obtener la longitud del titulo de la ventana antes.


En línea

juancaa

Desconectado Desconectado

Mensajes: 140


[ Img^(Img) = Real ]


Ver Perfil
Re: Ayuda con GetWindowText
« Respuesta #2 en: 21 Marzo 2013, 10:13 am »

Gracias x64Core!! Lo logre!! La verdad es que tengo algunos problemas con la gran vairedad de string de c++... que si ansi, unicode... A lo que iba, la solucion:

Código
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <Windows.h>
  4.  
  5. using namespace std;
  6.  
  7. int _tmain(int argc, _TCHAR* argv[]) {
  8. char title[128];
  9. ZeroMemory(title, sizeof(title));
  10. HWND wnd = GetForegroundWindow();
  11.  
  12. while (true) {
  13. HWND current = GetForegroundWindow();
  14. if (current!=wnd) {
  15. wnd = current;
  16. GetWindowTextA(wnd, (LPSTR)title, 128);
  17. cout << "Text: " << title << endl;
  18. }
  19. Sleep(50);
  20. }
  21.  
  22. int ans;
  23. cin >> ans;
  24. return 0;
  25. }

Solucion: cambie TCHAR por char, utilize la llamada al metodo GetWindowTextA() como tu dijiste, en formato ansi i como parametro casteo el char a LPSTR...
Gracias por tu ayuda!
En línea

Que tengas un buen dia!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines