Autor
|
Tema: Duda con la Api, Pulsar en boton de una aplicacion externa (Leído 3,095 veces)
|
QBBD
Desconectado
Mensajes: 1
No es Hacerlo, Es saberlo Hacer. ATT QBBD
|
Hola a todos, un Saludo de Mi parte, Bueno resulta que tengo una aplicacion externa que contiene Checkbox y Command(quiero manejar el programa externo). Tengo un codigo que si me funciona para marca y desmarcar los checkbok, pero para pulsar el comannd no me va. aca el codigo que tengo... Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer Private Const BM_CLICK = &HF5 Private Sub Command1_Click() Dim vPadre As Long Dim vHijo1 As Long vPadre = FindWindow("#32770", "Game Emulator V7.0") 'Ventana a ejecutar (Class = #32770)(Caption=Ejecutar) vHijo1 = FindWindowEx(vPadre, 0&, "Button", "Belly Panel") 'Boton (Class=Button)(Caption= Aceptar) Call SendMessage(vHijo1, BM_CLICK, 0, vbNullString) End Sub
Private Sub Command2_Click() Dim vPadre As Long Dim vHijo1 As Long vPadre = FindWindow("#32770", "Game Emulator V7.0") 'Ventana a ejecutar (Class = #32770)(Caption=Ejecutar) vHijo1 = FindWindowEx(vPadre, 0&, "Button", "Audit") 'Boton (Class=Button)(Caption= Aceptar) Call SendMessage(vHijo1, BM_CLICK, 0, vbNullString) End Sub
Private Sub Command3_Click() 'ESTE Command ES EL QUE SE SUPONE QUE DEBERIA PULSAR EL BOTON DE LA APLICACION EXTERNA Dim vPadre As Long Dim vHijo1 As Long vPadre = FindWindow("#32770", "Game Emulator V7.0") 'Ventana a ejecutar (Class = #32770)(Caption=Ejecutar) vHijo1 = FindWindowEx(vPadre, 0&, "Button", "Play 9") 'Boton (Class=Button)(Caption= Aceptar) Call SendMessage(vHijo1, BM_CLICK, 0, vbNullString) End Sub
|
|
|
En línea
|
Un fracaso no siempre es un error. El verdadero error es dejar de intentarlo.
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Igual el botón no está en ese nivel. Me explico: FindWindowEx() te saca el hwnd de un objeto contenido en el primer nivel de Game Emulator V7.0. Seguramente ese botón no se encuentre en exactamente ahí. Yo creo que si sacas el hwnd del botón con el Spy++ haces un GetParent() no coincide con el hwnd de Game Emulator V7.0. Posible solución: api EnumChildWindows(). ¡Suerte! DoEvents!
|
|
|
En línea
|
|
|
|
Danyfirex
Desconectado
Mensajes: 493
My Dear Mizuho
|
me hice esto rapidito debería funcionar bien. 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 Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function SendMessage_Long Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef LParam As Long) As Long Private Const WM_LBUTTONDOWN As Long = &H201 Private Const WM_LBUTTONUP As Long = &H202 Private Const WM_KEYUP As Long = &H101 Private Const WM_KEYDOWN As Long = &H100 Private Const VK_SPACE As Long = &H20 Private Sub Command1_Click() Dim bwnd As Long Dim wwnd As Long wwnd = FindWindow(vbNullString, "Form1") ' titulo de tu ventana bwnd = FindWindowEx(wwnd, ByVal 0&, "ThunderRT6CommandButton", "Command1") 'nombre de la clase y nombre del boton WindowAPI_Click (bwnd) End Sub 'funcion click Public Sub WindowAPI_Click(ByVal hwnd As Long) Dim retVal As Long retVal = SendMessage_Long(hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&) retVal = SendMessage_Long(hwnd, WM_LBUTTONDOWN, 0&, ByVal 0&) retVal = SendMessage_Long(hwnd, WM_KEYUP, VK_SPACE, ByVal 0&) retVal = SendMessage_Long(hwnd, WM_LBUTTONUP, 0&, ByVal 0&) End Sub
saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Abrir una archivo o carpeta al pulsar un botón
Programación Visual Basic
|
jamato
|
7
|
8,625
|
19 Junio 2005, 00:02 am
por {_The_Alwar_}
|
|
|
Ejecutar boton al pulsar enter...
Programación Visual Basic
|
BenRu
|
5
|
9,808
|
28 Enero 2006, 00:05 am
por sch3m4
|
|
|
¿ Se puede pulsar un botón del formulario ?
« 1 2 »
Programación Visual Basic
|
Pure Ice
|
17
|
6,966
|
9 Septiembre 2010, 00:50 am
por Petro_Boca
|
|
|
Arrancar Windows 7 al pulsar un boton en el teclado.
« 1 2 »
Windows
|
chocola
|
11
|
18,057
|
29 Diciembre 2011, 04:14 am
por dato000
|
|
|
Porqué cuando peleas en PS3 te dice qué botón pulsar?
Juegos y Consolas
|
nichihack
|
7
|
7,192
|
7 Junio 2014, 11:20 am
por -- KiLiaN --
|
|