PDA

Ver la Versión Completa : Problema con el FindWindow


lookmydoom
17-07-2006, 04:34:32
Que tal.

Tengo un problema con la instruccion FindWindow bueno resulta que necesito capturar el handle de varias aplicaciones y como ya saben este comando tiene 2 parametros el ClassName y WindowName, mi problema es que no logro optener los classname de las aplicaciones y no se como hacerlo, el WindowName no me sirve por que al ejecutar las aplicaciones estas abren documentos y el nombre de las ventanas varia.

Neftali [Germán.Estévez]
17-07-2006, 10:14:05
Hay muchas utilidades que te pueden ofrecer ese datos.
Por ejemplo, WinExporer (http://www.nirsoft.net/utils/winexp.zip), sin ir más lejos.

Ejecutalo, selecciona cualquier aplicación que esté ejecuando y en la cuarta pestaña tienes "Class Information".

delphi.com.ar
19-07-2006, 23:56:14
Hay muchas utilidades que te pueden ofrecer ese datos.

El mismo Delphi instala el WinSight que te puede ser de utilidad!

Saludos!

rounin
22-07-2006, 09:57:56
Saludos!

En principio, si conoces una parte del nombre de la ventana,
puedes usar EnumWindows.
Por ejemplo:


function EnumFunc(hWnd: THandle; lParam: Longint): BOOL; stdcall;
var s: string;
L: Integer;
begin
Result := True;
L := GetWindowTextLength(hWnd);
SetLength(s, L);
GetWindowText(hWnd, @s[1], L+1);
if ( Pos('Microsoft Internet Explorer', s) > 0 )and
( Pos('Problema con el FindWindow', s) > 0 )then
begin
Result := False;
TForm1(lParam).Caption := 'hwnd = '+IntToStr(hWnd);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumFunc, Longint(Self));
end;