Autor
|
Tema: Programa para saver Nombre de clase???? (Leído 5,210 veces)
|
Riki_89D
Desconectado
Mensajes: 851
BCN CITY
|
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 saver como se dice la clase de control Donde escribimos en el MSN (por ejemplo)
nse si me entendieron
salu2
|
|
|
En línea
|
|
|
|
bizco
Desconectado
Mensajes: 698
|
spy++
|
|
|
En línea
|
|
|
|
Riki_89D
Desconectado
Mensajes: 851
BCN CITY
|
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: .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
|
|
« Última modificación: 17 Enero 2010, 17:28 pm por Riki_89D »
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
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.
|
|
|
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
|
|
|
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
|
|
|
En línea
|
|
|
|
|
|