问题定义
我有两个 USB 显微镜,可以读取零件和序列号。 我想从Excel-VBA控制屏幕截图的显示和记录。
我想使用提供的 VLC active X 组件尝试此操作。 我需要成品是一个不需要安装的单个zip。 我认为使用这个 activex 对象作为免注册 COM 是正确的选择。
参考文献
我一直在做作业,这是我的参考资料。
VLC 播放器和 Excel Visual Basic 编辑器
到目前为止我的尝试。
我创造了 桌面 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
我收到一条消息框,说此命令已成功运行,但是我收到了相同的错误。
我在使用 VLC 和 Excel 将 vlc 播放器插入工作表和表单时遇到问题。
去年就成功了... “VLC Activex Plugin...”不在附加控件框中可供选择。 注册dll成功了,但是还是不行。 然后我记得我把VLC升级到了新版本和64位
我卸载了 VLC 64 并安装了新版本32位 “VLC Activex Plugin...”现在位于附加控件框中,一切都很好
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