在excel vba中使用VLC播放器activex作为免注册COM

问题描述 投票:0回答:2

问题定义

我有两个 USB 显微镜,可以读取零件和序列号。 我想从Excel-VBA控制屏幕截图的显示和记录。

我想使用提供的 VLC active X 组件尝试此操作。 我需要成品是一个不需要安装的单个zip。 我认为使用这个 activex 对象作为免注册 COM 是正确的选择。

参考文献

我一直在做作业,这是我的参考资料。

如何在不注册的情况下使用vlc.dll?

免注册 COM 互操作

VLC 播放器和 Excel Visual Basic 编辑器

无法从 VBA 获得免注册 COM 工作

到目前为止我的尝试。

我创造了 桌面 xcel vlc 演示 xcel vlc demo.xlsb 然后我将整个 vlc 发行版复制到 Desktop xcel vlc demo lc\

这包括 axvlc.dll 和 axvlc.dll.manifest

我创建了一个模块并将此代码放入其中。

Sub VLC()
    Dim actCtx As Object
    Set actCtx = CreateObject("Microsoft.Windows.ActCtx")
    actCtx.Manifest = ThisWorkbook.Path & "\vlc\axvlc.dll.manifest"

    Dim myVlC As Object
    Set myVlC = actCtx.CreateObject("AXVLC.VLCPlugin2")

    myVlC.Visible = True
    myVlC.playlist.Add (ThisWorkbook.Path & "\demo.mov")
    myVlC.playlist.Play

End Sub

这行失败了

    Set myVlC = actCtx.CreateObject("AXVLC.VLCPlugin2")

有错误

    Run-time error '429':
    ActiveX component can't create object

我可能有错误的对象名称“AXVLC.VLCPlugin2”,我无法确认它在文档中是否仍然有效。

“user1610015”也可能是正确的,“我认为在这种情况下你不能让 reg-free COM 工作”

此时我已经没有主意了,我以前从未尝试过免注册 COM,所以我不知道我是否对免注册 COM 或 axvlc 部分做错了什么!

谢谢

编辑 1:尝试早期绑定

我进入工具 -> 引用,然后单击浏览并添加 axvlc.dll 文件。 我将代码修改如下(AXVLC.VLCPlugin2 部分自动完成,所以至少这部分应该可以工作)

Sub VLC()
    Dim myVlC As New AXVLC.VLCPlugin2
    myVlC.Visible = True
    myVlC.playlist.Add (ThisWorkbook.Path & "\demo.mov")
    myVlC.playlist.Play

End Sub

但是这会失败并出现相同的错误

    Run-time error '429':
    ActiveX component can't create object

上线了

myVlC.Visible = True

也许我还需要用 regsrv32 注册这个文件? 编辑2:尝试了regsvr32

从 vlc 子文件夹运行此命令

regsvr32 axvlc.dll

我收到一条消息框,说此命令已成功运行,但是我收到了相同的错误。

excel vba vlc
2个回答
1
投票

我在使用 VLC 和 Excel 将 vlc 播放器插入工作表和表单时遇到问题。

去年就成功了... “VLC Activex Plugin...”不在附加控件框中可供选择。 注册dll成功了,但是还是不行。 然后我记得我把VLC升级到了新版本和64位

我卸载了 VLC 64 并安装了新版本32位 “VLC Activex Plugin...”现在位于附加控件框中,一切都很好


0
投票
Set vlcControl = Controls.Add("VideoLAN.VLCPlugin.2", "vlcControl")

vlcControl.Height = 6000
vlcControl.Width = 10000
vlcControl.Visible = True

Set vlcPlayer = vlcControl.object

vlcPlayer.playlist.Add ("rtsp://")
vlcPlayer.playlist.play
© www.soinside.com 2019 - 2024. All rights reserved.