Ver Mensaje Individual
  #4  
Antiguo 20-09-2006
johnyague johnyague is offline
Registrado
 
Registrado: jul 2006
Posts: 9
Reputación: 0
johnyague Va por buen camino
Super Bien

Cita:
Empezado por seoane
Que te parece algo asi:

Código Delphi [-]function EnumWindowsProc(Handle: Thandle; lParam: LPARAM): BOOL; stdcall; var Buffer: PChar; Size: Integer; Lista: TStringList; i: integer; begin Result:= TRUE; // Comprobamos la clase de la ventana GetMem(Buffer,Length('IEFrame') + 1); try GetClassname(Handle,Buffer,Length('IEFrame') + 1); // Si no es la clase que buscamos salimos if StrIComp(Buffer,'IEFrame') <> 0 then Exit; finally FreeMem(Buffer); end; // Obtenemos el titulo de la ventana Size:= GetWindowTextLength(Handle) + 1; GetMem(Buffer,Size); try GetWindowText(Handle,Buffer,Size); // Pasamos el titulo a mayusculas StrUpper(Buffer); // Buscamos cada una de las palabras de la lista en el titulo Lista:= TStringList(Pointer(LParam)); for i := 0 to Lista.Count - 1 do begin // Si encontramos una palabra la cerramos if Pos(Lista[i],String(Buffer)) > 0 then begin PostMessage(Handle,WM_Close,0,0); Exit; end; end; finally Freemem(Buffer); end; end; // Un ejemplo de como usar lo anterior var Lista: TStringList; begin Lista:= TstringList.Create; try // Añadimos las palabras a buscar, o las cargamos desde un archivo Lista.Add('Google'); // Lo pasamos todo a mayusculas Lista.Text:= Uppercase(Lista.Text); // Empezamos a examinar las ventanas EnumWindows(@EnumWindowsProc, LParam(Pointer(Lista))); finally Lista.Free; end; end;


El único problema que veo es que la ventana no se quiera cerrar, por ejemplo si estas en una sesión de webmessenger saldrá un mensaje pidiendo confirmación para cerrar la sesión. Yo en estos caso lo que hago es matar el proceso, pero eso ya es otra historia ...

Amigo Muchas Gracias funciono sin problemas...
Responder Con Cita