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

Sho*_*dan 10 excel vba vlc excel-vba

问题定义

我有两个USB显微镜读数部分和序列号.我想控制Excel-VBA中屏幕截图的显示和记录.

我想尝试使用提供的VLC活动X组件.我需要整理产品是一个不需要安装的单拉链.我认为使用这个activex对象作为免注册COM是可行的方法.

参考

我一直在做我的作业,这里是我的参考.

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

免注册COM互操作

VLC播放器和Excel Visual Basic编辑器

无法从VBA获得免注册COM

到目前为止我的尝试.

我创建了Desktop\excel vlc demo\excel vlc demo.xlsb然后我将整个vlc发行版复制到Desktop\excel vlc demo\vlc \

这包括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
Run Code Online (Sandbox Code Playgroud)

这就失败了

    Set myVlC = actCtx.CreateObject("AXVLC.VLCPlugin2")
Run Code Online (Sandbox Code Playgroud)

有错误

    Run-time error '429':
    ActiveX component can't create object
Run Code Online (Sandbox Code Playgroud)

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

也可能是"user1610015"在说"我不认为你可以在这种情况下使无reg的COM工作"是正确的

在这一点上,我没有想法,我之前从未尝试过免费的COM,因此我不知道我是否在使用无reg的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 Code Online (Sandbox Code Playgroud)

然而,这失败了同样的错误

    Run-time error '429':
    ActiveX component can't create object
Run Code Online (Sandbox Code Playgroud)

在线上

myVlC.Visible = True
Run Code Online (Sandbox Code Playgroud)

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

从vlc子文件夹运行此命令

regsvr32 axvlc.dll
Run Code Online (Sandbox Code Playgroud)

我有一个msgbox说这个命令成功运行,但是我得到了同样的错误.

小智 1

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

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

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