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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Findwindow() en Windows Seven
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Findwindow() en Windows Seven  (Leído 4,137 veces)
Air_Dragon

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Findwindow() en Windows Seven
« en: 27 Octubre 2010, 09:16 am »

Tengo una aplicacion que me genera crash, paso a paso vi que el error estaba en

Código:
HWND hWnd = FindWindow(NULL,"Calculadora");

Solo eso me hace crashear en Windows 7, menos en el Home, el programa lo compile en Windows XP, 2003 y hasta mismo Seven y siegue haciendo lo mismo, me qde sin ideas...

A alguien le paso algo parecido?


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Findwindow() en Windows Seven
« Respuesta #1 en: 27 Octubre 2010, 10:31 am »

¿Estas seguro de que se produce la excepcion al llamar a FindWindow?

Fijate si esto te funciona:
Código
  1. #include <windows.h>
  2.  
  3. int CALLBACK WinMain(
  4.  __in  HINSTANCE hInstance,
  5.  __in  HINSTANCE hPrevInstance,
  6.  __in  LPSTR lpCmdLine,
  7.  __in  int nCmdShow
  8. )
  9. {
  10.  HWND hWnd = FindWindow(NULL,"Calculadora");
  11.  MessageBox(0, "SI", "SI", 0);
  12. }


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Air_Dragon

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Findwindow() en Windows Seven
« Respuesta #2 en: 27 Octubre 2010, 22:46 pm »

No me funciona, no se si lo hice bien, pero te pego mi script, solo fuerza el listado de ventanas, esten ocultas o no, en XP funciona 10 pts, pero en seven en algunas pcs crashea o solo dice que "no se pudo iniciar la aplicacion la configuracion en paralelo no es correcta..... "

Googlee ese error por supuesto, me pide que baje los Redistributable package, lo probamos instalando 2005 - 2008, los service packs, etc etc, sigue el mismo error..
y me di cuenta que era el FindWindow cuando solo hice

Código:
HWND hWnd = FindWindow(NULL,"Calculadora");
if(hWnd )
{
 printf("Calculadora detectada");
}

Código:
#include <windows.h>
#include <conio.h>
#include <stdio.h>

void EnableDebugPriv()
{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;

if (!OpenProcessToken( GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) )
return;
if ( ! LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue ) ){
CloseHandle( hToken );
return;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL ) )
CloseHandle( hToken );
}

struct ProcInfo {
    HWND hWnd;
    CHAR szTitle[255];
    CHAR szClass[255];
};

void ForzarListado()
{
    HWND hWnd;
    ProcInfo mProc[1024];
    int nCount = 0;
    int nPID = 0;
    int i = 0;

    hWnd = FindWindow(NULL,NULL);
MessageBox(0,hWnd,"Holas",0);

    while(hWnd>0)
    {
        if(!GetParent(hWnd))
        {
  mProc[nCount].hWnd = hWnd;
                GetWindowTextA(hWnd, mProc[nCount].szTitle, 255);
                GetClassNameA(hWnd, mProc[nCount].szClass, 255);
    if(_strnicmp(mProc[nCount].szTitle,"Calculadora",sizeof("Calculadora"))==0)
{
printf("Calculadora encontrada \n");
break;
}
                nCount++;
            }     
        hWnd = GetWindow(hWnd, GW_HWNDNEXT);
}
printf("\n");
}

void main()
{
EnableDebugPriv();
Sleep(100);
ForzarListado();
system("pause");
}
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Findwindow() en Windows Seven
« Respuesta #3 en: 27 Octubre 2010, 23:40 pm »

Me parece que un problema no tiene nada que ver con el otro, fijate si podes depurar FindWindow para ver donde falla exactamente ... te recomiendo usar el WinDbg.

PD. Esta linea asi esta mal:
MessageBox(0,hWnd,"Holas",0);
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Lunfardo


Desconectado Desconectado

Mensajes: 568


Ver Perfil
Re: Findwindow() en Windows Seven
« Respuesta #4 en: 27 Octubre 2010, 23:52 pm »

yo en windows 7 y con c #, encontraba la informacion que necesitas con una tool de vs llamada spy++ , que tiene un herramienta llamada Windows Search , que te da la informacion necesaria para ser un usar la funcion FindWindows().


espero haberte ayudado

aca de dejo un ejemplo ,aunque justo ahora estoy en xp:




pd:no es la FindWindows para la calculadora en xp que en 7
« Última modificación: 28 Octubre 2010, 00:00 am por SmogMX » En línea

Air_Dragon

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Findwindow() en Windows Seven
« Respuesta #5 en: 28 Octubre 2010, 01:20 am »

Me parece que un problema no tiene nada que ver con el otro, fijate si podes depurar FindWindow para ver donde falla exactamente ... te recomiendo usar el WinDbg.

PD. Esta linea asi esta mal:
MessageBox(0,hWnd,"Holas",0);

Si si ese messagebox lo taba probando, pero no funciona de todos modos, voy a probar cn el dbg

yo en windows 7 y con c #, encontraba la informacion que necesitas con una tool de vs llamada spy++ , que tiene un herramienta llamada Windows Search , que te da la informacion necesaria para ser un usar la funcion FindWindows().


espero haberte ayudado

aca de dejo un ejemplo ,aunque justo ahora estoy en xp:


Si si, es un test, en Windows Seven es Calculadora lo saque cn winspy.. el tema es que no funciona el findwindow, no quer no lo encuentra
En línea

Lunfardo


Desconectado Desconectado

Mensajes: 568


Ver Perfil
Re: Findwindow() en Windows Seven
« Respuesta #6 en: 28 Octubre 2010, 04:07 am »

 en ninguna ventana te funciona o solo en la de la calculadora ?


y pregunta boluda, aunque no menos importate, la calculadora esta abierta ? xD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con FindWindow, FindWindowEx, SendMessage
ASM
.:UND3R:. 7 4,839 Último mensaje 2 Junio 2012, 23:03 pm
por _Enko
Problemas con FindWindow
Programación C/C++
Julio0 1 5,264 Último mensaje 2 Octubre 2020, 19:00 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines