Programa para saber Nombre de clase????

Iniciado por Riki_89D, 16 Enero 2010, 19:40 PM

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

Riki_89D

Hola que tal,veran saven si existe algun programa que me diga el nombre d ela clase de los controles que tiene una ventana?????? los botones,los comobobx etc etc para despues modificarlos desde mi App,intete utilizar WnumWindows,EnumWindowsChild,GetCLassName i algunas mas pero no se como hacelor nuna utilize esas Api

lo que quiero por ejemplo es saber como se dice la clase de control Donde escribimos en el MSN (por ejemplo)

nse si me entendieron



salu2


Riki_89D

#2
Hola gracias por tu respuesta,utilize ese soft pero nose como aplicarlo ahora con las Api FindWindow y FindWindowEx,

ese programa me dice la clase como pro ejemplo Button RichEdit i tal i me da un
handle Con NUmero,como puedo yo modificar ese control sabiendo el Handle Que me da Spy++?? lo e probado i mira tengo este code:
Código (asm) [Seleccionar]

.data
Ven DB 'Windows Live Messenger',0
Clase db 'Button',0

.data?

Buffer db 32 dup(?)

.code
start:
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
Local hand:HWND
mov hand,8454538   ;Handle que me da el Spy++ :S


invoke FindWindowEx,offset Ven,hand,offset Clase,0
invoke GetWindowText,eax,OFFSET Buffer,SIZEOF Buffer
invoke MessageBox,0,offset Buffer,0,0

WinMain endp

invoke ExitProcess,0


pero nada no me funciona no me muestra el texto del boton :(



Eternal Idol

TENES que leer la MSDN si queres trabajar con Windows:
http://msdn.microsoft.com/en-us/library/bb787605(VS.85).aspx

Ver por ejemplo EM_GETTEXTEX.
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

Saint Iker

Te lo dejo en C que me da joda pasarlo a MASM.

#include <cstdio>
#include <cstdlib>
#include <windows.h>

#define MAX_CLASS 256
#define MAX_TEXT 2048
#define PROGRAM_STR "XXXXXXXXXXXXXXXXXXX"

BOOL CALLBACK EnumChildProc( HWND hWnd, LPARAM lParam)
{
char szClass[MAX_CLASS + 1];
char szText[MAX_TEXT + 1];
int iAux, iLen;

if (hWnd == NULL)
return FALSE;

memset( szText, 0x00, MAX_TEXT + 1);
memset( szClass, 0x00, MAX_CLASS + 1);

iLen = GetWindowText( hWnd, szText, MAX_TEXT);
iAux = GetClassName( hWnd, szClass, MAX_CLASS);

if (iAux <= 0 && iLen <= 0) {
printf("Unkownn Control Window Identifier[%X]\r\n", hWnd);
return TRUE;
}

printf("\tControl Class[%s], Text[%s]\r\n", szClass, szText);

EnumChildWindows( hWnd, EnumChildProc, NULL);

return TRUE;
}

BOOL CALLBACK EnumMainProc( HWND hWnd, LPARAM lParam)
{
char szText[MAX_TEXT + 1];
int iLen = 0;

if (hWnd == NULL)
return FALSE;

memset( szText, 0x00, MAX_TEXT + 1);

iLen = GetWindowText( hWnd, szText, MAX_TEXT);

if (iLen <= 0)
return TRUE;

if (stricmp( szText, PROGRAM_STR) != 0)
return TRUE;

EnumChildWindows( hWnd, EnumChildProc, NULL);

return TRUE;
}

int main( void )
{
EnumWindows( EnumMainProc, NULL);

return 0;
}


Salu2.

Att: Iker