12/02/2003, 18:42
|
| | | Fecha de Ingreso: mayo-2002 Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses Puntos: 7 | |
De La Web del Programador Cita: Para poder manipular cualquier ventana debes tomar un manejador de la misma, esto es recurrir a la funcion GetTopWindow para tomar la ventana de orden principale (le paso el null) luego hace un lazo buscando las siguientes (de igual categoria) y GetNextWindow para buscar las que le siguen hasta que la funcion me indique que ya no hay mas. Esto es lo que hace la funcion de ejemplo que hice "Find_Wnd", que toma como parametro un string con el titulo de la ventana a buscar. Si tiene exito la funcion devuelve el manipulador, caso contrario devuelve 0 (null).
Luego tendrias que utilizar SetWindowPos para manejar las caracteristicas de la ventana (Minimizarla, Ocultarla, Etc)
Private Function Find_Wnd(Caption As String) As Long
Dim Retval As Long, hwnd As Long
Dim Buffer As String
Find_Wnd = 0 ´Prevengo que no este la ventana
hwnd = GetTopWindow(0) ´ Toma la ventana que estaarriba de todo!
Do
hwnd = GetNextWindow(hwnd, GW_HWNDNEXT) ´ pasa a buscar la siguiente hasta encontrar la que busco!!!
If hwnd = 0 Then Exit Function
Buffer = String(255, " ") ´llena el string con espacios (asi quita los char NULL)
Retval = GetWindowText(hwnd, Buffer, 255) ´toma el titulo de la ventana (si es una ventana y no un control!)
Loop Until (InStr(1, Buffer, Caption, vbTextCompare) <> 0)
Find_Wnd = hwnd
End Function |