Saltar al contenido

Video en USERFORM desde un HTML


Recommended Posts

publicado

Hola el problema es que el la pagina utiliza HTML5 para reproducir el video y el control webbrowser siempre utiliza una versión vieja del internet explorer y no tiene soporte para HTML5, pero por suerte se puede modificar agregando a la aplicación al registro, en este caso Excel.

copia y pega el siguiente código en el userform.

Option Explicit
#If VBA7 Then
    Private Declare PtrSafe Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As LongPtr) As Long
    Private Declare PtrSafe Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As LongPtr, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
    Private Declare PtrSafe Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As LongPtr, ByVal lpSubKey As String, phkResult As LongPtr) As Long
    Private Declare PtrSafe Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As LongPtr, ByVal lpValueName As String, ByVal lpReserved As LongPtr, lpType As Long, lpData As Any, lpcbData As Long) As Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
#Else
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
    Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
#End If

Private Const REG_DWORD = 4
Private Const HKEY_CURRENT_USER = &H80000001

Sub WebBrowser_IE9()
    Dim Ret, RegistryKey
    Dim sBuffer As String
    Ret = RegCreateKey(HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", RegistryKey)
      
    sBuffer = Space(255)
    Ret = RegQueryValueEx(RegistryKey, "EXCEL.EXE", 0, REG_DWORD, ByVal sBuffer, 255&)
    If Ret <> 0 Then RegSetValueEx RegistryKey, "EXCEL.EXE", 0&, REG_DWORD, ByVal CStr(Chr(0) & Chr(0) & Chr(0) & Chr(0)), 4&
    Ret = RegCloseKey(RegistryKey)
End Sub

Private Sub UserForm_Activate()
    WebBrowser1.Navigate ThisWorkbook.Path & ("\index.html")
End Sub

Private Sub UserForm_Initialize()
    WebBrowser_IE9
End Sub

el único inconveniente que al estar el video en la pc, tienes que darle el permiso a mano, seguramente esto se puede corregir cambiando alguna otra clave en el registro, pero desconozco cual. (quizás tu idea es subir el video en algun servidor y esto ya no seria necesario)

publicado

@LeandroA efectivamente el vídeo lo estoy subiendo a un servidor: 

WebBrowser1.Navigate ("http://191.101.0.13/projectos/Excel/index.html")

He pegado todo el código en el Userform pero no logro ver el vídeo, hay algo que tenga que habilitar?

Muchas gracias por tu pronta respuesta y ayuda.

 

publicado

perdón quizás no aclare que deberías reiniciar el documento, si no te funciona decime si con tu Internet Explorer podes visualizarlo, supongo que tienes una version superior a la 8. (por las dudas aclaro Internet Explorer, no Chrome o firefox)

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.