Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 06-07-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.966
Poder: 29
delphi.com.ar Va camino a la fama
Yo había creado unas funciones mas genéricas, tu "GetMainWindow" es algo así:
Código Delphi [-]
function FindThreadWindow(dwThreadId: DWORD; hParent: HWND; lpClassName, lpWindowName: PAnsiChar; wTimeOut: Word = 30000): HWND;
var
  AFindWindow: TFindWindow;
  ATickCount: DWORD;
begin
  AFindWindow.lpClassName := lpClassName;
  AFindWindow.lpWindowName := lpWindowName;
  AFindWindow.hResult := 0;
  ATickCount := GetTickCount + wTimeOut;
  repeat
    if hParent = 0 Then
      EnumThreadWindows(dwThreadId, @EnumThreadWndProc, Integer(@AFindWindow))
    else
      EnumChildWindows(hParent, @EnumThreadWndProc, Integer(@AFindWindow));
  until (AFindWindow.hResult <> 0) or (ATickCount < GetTickCount);

  Result := AFindWindow.hResult;
end;
Me parece que es un poco mas real el concepto de TimeOut, en tu código es un tiempo de espera. (Solo una cuestión semántica )
Vale aclarar que usar GetTickCount no es del todo seguro para estos casos, ya que si el equipo estuvo encendido durante 49.7 días, este vuelve a cero. Un poco extraño, pero en uno de los proyectos en que estoy trabajando ha sucedido .
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:32:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi