/// <summary>
/// Obtiene la función de identificador de ventana
/// </summary>
/// <param name="lpClassName">nombre de clase de ventana</param>
/// <param name="lpWindowName" >Ventana title name</param>
/// <returns>Return handle</returns>
[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName) ;
[DllImport("user32.dll", EntryPoint = "FindWindowEx", SetLastError = true)]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, uint hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll")]
public static extern int EnumChildWindows(IntPtr hWndParent, CallBack lpfn, int lParam);
[DllImport("user32.dll")]
public static extern int GetWindowText(IntPtr hwnd, StringBuilder sb, int length);
delegado público bool CallBack(IntPtr hwnd, int lParam);
/// <summary>
/// Encuentre el identificador de control en el formulario
/// </summary>
/// <param name="hwnd">identificador del formulario principal</param>
/// <param name="lpszWindow ">Título del control (Texto)</param>
/// <param name="bChild">Establecer si buscar en el formulario secundario</param>
/// <returns>Manejador de control, si no se encuentra, devuelve IntPtr. Zero </returns>
public static IntPtr FindWindowExMy(IntPtr hwnd, string lpszWindow, bool bChild)
{ IntPtr iResult = IntPtr.Zero; // Primero busque los controles en el formulario padre iResult = FindWindowEx(hwnd, 0, null, lpszWindow); / / Si lo encuentra, devuelve directamente el identificador de control si (iResult != IntPtr.Cero) devuelve iResult;
// Si está configurado para no buscar en el formulario secundario
if (!bChild)
devuelve iResult;
// Enumerar ventanas secundarias, encontrar identificadores de control
int i = EnumChildWindows(
hwnd,
(h, l) =>
{ IntPtr f1 = FindWindowEx(h, 0, null, lpszWindow); if (f1 == IntPtr.Zero) return true; else { StringBuilder title = new StringBuilder(200); int len; len = GetWindowText(hwnd, title, 200);
iResult = f1;
return false;
}
},
0);
// devuelve el resultado de la búsqueda
return iResult;
}