les dejo aca el code :
Form1 :
CommandButton : a
TextBox : Text1 (Multiline)
ShockwaveFlash : ShockwaveFlash1
Código vb:
Ver original
Option Explicit 'click Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Sub a_Click() Call SendMessage(GetBrowserHandle(Me.hwnd), &H201, &H0&, Make_lParam(50, 50)) Call SendMessage(GetBrowserHandle(Me.hwnd), &H202, &H0&, Make_lParam(50, 50)) End Sub Private Sub Form_Load() 'WebBrowser1.Navigate ("C:\Users\user\Desktop\prueba.html") ShockwaveFlash1.Movie = "C:\Users\user\Desktop\a.swf" End Sub Function Make_lParam(ByVal X As Integer, ByVal Y As Integer) As Long Make_lParam = X Or (Y * &H10000) End Function
Modulo :
Código vb:
Ver original
'Public HwWeb As Long Private Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" ( _ ByVal hwnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long _ ) As Long Private Declare Function EnumChildWindows Lib "user32.dll" ( _ ByVal hWndParent As Long, _ ByVal lpEnumFunc As Long, _ ByVal lParam As Long _ ) As Long Private hWndIE As Long Private Function EnumChildProc(ByVal hwnd As Long, ByVal lParam As Long) As Long Dim sClassName As String sClassName = String(255, vbNullChar) Call GetClassName(hwnd, sClassName, 255) Form1.Text1.Text = Form1.Text1.Text & vbCrLf & sClassName sClassName = Left$(sClassName, InStr(sClassName, vbNullChar) - 1) If sClassName <> "MacromediaFlashPlayerActiveX" Then EnumChildProc = 1 Else hWndIE = hwnd End If End Function Public Function GetBrowserHandle(ByVal hWndParent) As Long Form1.Text1.Text = " -------- " & vbCrLf hWndIE = 0 Call EnumChildWindows(hWndParent, AddressOf EnumChildProc, 1) GetBrowserHandle = hWndIE End Function
Lo que pienso que sucede es como si lo intentase hacer con un form, si envio el click mediante su Hwnd y en la posicion 50,50 hay un boton, este no es "presionado", de manera que necesito enviar el SendMessage desde el Hwnd del CommandButton. la cuestion es que no tengo acceso a los controles del ShockWaveFlash control mediante el EnumChildWindows, entonces ...
-Es esta la razon por la cual el botton del ShockWaveFlash1 no es "presionado"?
-Hay manera de acceder a controles de este control ShockWaveFlash desde VB siendo que yo no soy el creador de este ultimo?
-Asi como al anidar un Form dentro de otro , es posible acceder a sus controles , es posible acceder a los controles de un Swf mediante la anidacion dentro de otro donde si soy yo el creador? es decir, asi como VB interactua con otros form desarrollados en VB , un Swf con Action Script puede interactuar de esta manera con otro Swf? para que ... con "mi" VB y "mi" Swf pueda interactuar para que al final "mi" Swf le envie parametros o eventos a los controles del otro Swf ?
El ejemplo lo estoy desarrollando con este boton que lo tengo descargado en mi Disco:
http://fc07.deviantart.net/fs71/f/20...ga-d36ds6k.swf