2011-01-23 102 views
1

我已经添加COM控件AxWindowsMediaPlayer在vb.net中形成。在vb.net应用程序AxWindowsMediaPlayer不能在客户端机器上工作

,只是有下面的代码

Public Class Form1 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     WMPlayerVideo.URL = "abase.mp4" 
    End Sub 

End Class 

abase.mp4文件被保存在目录中的exe是存在的。每一件事情都可以在dev m/c上正常运行,但是客户端机器上的应用程序并没有受到启发。

当Interop.WMPLib.dll和Interop.WMPLib.dll被复制到exe文件目录,那么应用程序至少被启动,但文件不会自动播放,甚至没有播放按播放按钮。

是否需要某些dll注册才能使其工作?或项目中需要一些参考? 或用户机器上的一些更改?

回答

1

复制DLL是必需的,否则它无法工作。哪个离开文件的位置。你只给出文件的相对位置,而不是完整的路径(如“c:\ mumble \ foo.mp4”)。在你的机器上,这个文件需要存储在项目目录的bin \ Debug文件夹中以使其工作。您将程序部署到的另一台机器不会有bin \ Debug(或Release)文件夹。它仍然需要与EXE在同一个目录中。也许你忘了复制.mp4文件?

很明显,您会希望为用户提供一种选择文件的方法。使用OpenFileDialog。

+0

Yaah我使用文件对话框来选择文件,并且我还使用了reg free com方法。在引用文件夹中的WMPLib文件的属性中(见解决方案资源管理器中的“显示所有文件”选项),我将隔离属性设置为True。它的默认值是false。因此,在运行该项目后,将其设置为true会生成dll文件,清单文件。当所有这些文件都复制到客户机上时,Windows Media Player终于开始了。 http://msdn.microsoft.com/hi-in/magazine/cc188708%28en-us%29.aspx – vaichidrewar 2011-01-23 19:03:54