Autor
|
Tema: Obtener el identificador de una segunda ventana hija (Leído 2,500 veces)
|
lobo3072
Desconectado
Mensajes: 10
|
hola mi problema es el siguiente esto armando una aplicación en visual basic para controlar otro programa ccleaner y para eso necesito enviar un clic al botón analizar del ccleaner para eso uso hWndMain = FindWindow("PiriformCCleaner", "Piriform CCleaner")para obtener el identificador de la ventana padre del programa, el problema surge cuando necesito obtener el identificador de la segunda ventana hija que sería "#32770 (Cuadro de diálogo)" (FindWindowEx no me serviría por que iría a la primer ventana hija ósea que iría a "ScrollBar") una vez encontrado el identificador de la segunda ventana hija, tendría que buscar dentro de la misma el identificador de la ventana "&Analizar" una vez encontrado el mismo utilizaría SendMessage(vHijo1, BM_CLICK, 0, vbNullString)para enviar el clic al botón. Ya he probado utilizando GetWindow(hWndMain, GW_CHILD), GetWindow(hWndMain GW_HWNDNEXT), GetNextWindow, EnumChildWindows pero sin ningún resultado útil.
Agradezco cualquier información que puedan darme.
pd: quise insertar en el foro una imagen del spy++ para que se entienda mejor la pregunta pero no pude, como se hace?
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
sube la imagine a un hosting de imagenees (tinypic, i.elhacker.net por ejemplo) y pega el link presionando en el boton cuando contestes
No te sirve el ccleaner en modo consola?
Seguro que con FindWindowEx no funciona? (encontrando en cascada como en el Spy++)
|
|
|
En línea
|
|
|
|
lobo3072
Desconectado
Mensajes: 10
|
Hola raul338 gracias por contestar tan rápido, creo que ya entendí como colocar una imagen en el foro. Bueno con respecto al ccleaner es un programa X que elegí para hacer la pregunta, mi verdadera intención es hacer una aplicación que instale setups en forma totalmente automáticamente ósea que aparezca un formulario con varios checkboxs de cada uno de los programas, uno selecciona los programas que quiere instalar aprieta un botón y este instala uno tras otro, para eso tengo que ser capaz de acceder a todas las ventanas de cada uno de los setups e ir enviando clic a cada uno de los botones de los mismos y FindWindowEx sirve en los casos en los que necesito el identificador de la primer ventana hija, pero no me sirve para la segunda ventana hija, porque FindWindowEx siempre va a la primera. Una vez que pueda enviarle clic al botón analizar de ccleaner aplicaría lo mismo para el verdadero proyecto. Bueno acá les dejo la imagen para que entiendan mejor a donde quiero ir. Salu2
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Sub Command1_Click()
Dim hWndMain As Long Dim hWndChild As Long Dim hWndAnalizar As Long
hWndMain = FindWindow("PiriformCCleaner", "Piriform CCleaner")
If hWndMain = 0 Then MsgBox "Ccleaner sin Ejecutar" Else hWndChild = FindWindowEx(hWndMain, 0, "#32770", vbNullString) hWndAnalizar = FindWindowEx(hWndChild, 0, "Button", "&Analizar")
If hWndAnalizar = 0 Then MsgBox "La Opcion Limpiador no está Seleccionada" Else MsgBox hWndAnalizar End If End If
End Sub
|
|
« Última modificación: 12 Julio 2013, 04:33 am por Dessa »
|
En línea
|
Adrian Desanti
|
|
|
lobo3072
Desconectado
Mensajes: 10
|
Hola ,bueno quería comentarles que ya probé con el código que me facilito Dessa y pude solucionar mi problema, yo había hecho algo parecido a eso pero estaba utilizando mal FindWindowEx eso sumado a que interprete mal msdn de Microsoft sobre FindWindowEx eso causo mi confusión, muchísimas gracias a todos por ayudarme con este pequeño problema. Salu2
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ForceFore: Obtener controlador de ventana
Programación Visual Basic
|
vbasicred
|
0
|
1,106
|
11 Junio 2006, 21:07 pm
por vbasicred
|
|
|
obtener ventana hija que tiene el foco de una aplicacion externa?
Programación Visual Basic
|
LeandroA
|
9
|
6,598
|
10 Junio 2008, 18:51 pm
por cobein
|
|
|
Obtener el Nombre de la ventana
.NET (C#, VB.NET, ASP)
|
BrokerJoker
|
4
|
3,323
|
30 Enero 2012, 00:41 am
por Keyen Night
|
|
|
No muestra la ventana Hija
Programación C/C++
|
CBFD
|
2
|
2,190
|
10 Mayo 2016, 16:51 pm
por CBFD
|
|
|
Posicionar ventana hija siempre relativa a la ventana padre.-
Scripting
|
El mas antiguo
|
2
|
3,503
|
17 Agosto 2022, 14:34 pm
por El mas antiguo
|
|