在图片框内运行AVI文件

大家好,

以下代码将允许您在图片框中运行任何AVI文件。

评论并评分!

API声明

Const WS_CHILD = &H40000000                     
Private Declare Function mciSendString Lib " winmm.dll " Alias _                    
    "mciSendStringA" (ByVal lpstrCommand As String, _                    
    ByVal lpstrReturnString As String, ByVal uReturnLength As Long, _                    
    ByVal hwndCallback As Long) As Long                     
Private Declare Function mciGetErrorString Lib " winmm.dll " Alias _                    
    "mciGetErrorStringA" (ByVal dwError As Long, _                    
    ByVal lpstrBuffer As String, ByVal uLength As Long) As Long                     
Private Declare Function GetShortPathName Lib " kernel32.dll " Alias _                    
    "GetShortPathNameA" (ByVal lpszLongPath As String, _                    
    ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
模块代码
' FileName is a string containing the full path of the file.                    
' Window is the PictureBox in which you want that the movie                    
' is played; the movie is automatically resized to the picture box                     
Sub PlayAVIPictureBox(FileName As String, ByVal Window As PictureBox)                    
    Dim RetVal As Long                    
    Dim CommandString As String                    
    Dim ShortFileName As String * 260                    
    Dim deviceIsOpen As Boolean                     
    ' Retrieve short file name format                    
    RetVal = GetShortPathName(FileName, ShortFileName, Len(ShortFileName))                    
    FileName = Left$(ShortFileName, RetVal)                     
    ' Open the device                    
    CommandString = "Open " & FileName & " type AVIVideo alias AVIFile parent " & _
                       CStr(Window.hWnd)                    & " style " & CStr(WS_CHILD)                    
    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)                    
    If RetVal Then GoTo error                    
        ' remember that the device is now open                    
        deviceIsOpen = True                    
        ' Resize the movie to PictureBox size                    
        CommandString = "put AVIFile window at 0 0 " & CStr _                    
        (Window.ScaleWidth / Screen.TwipsPerPixelX) & " " & _                    
        CStr(Window.ScaleHeight / Screen.TwipsPerPixelY)                    
        RetVal = mciSendString(CommandString, vbNullString, 0, 0&)                    
    If RetVal <> 0 Then GoTo error                     
    ' Play the file                    
    CommandString = "Play AVIFile wait"                    
    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)                    
    If RetVal <> 0 Then GoTo error                     
    ' Close the device                    
    CommandString = "Close AVIFile"                    
    RetVal = mciSendString(CommandString, vbNullString, 0, 0&)                    
    If RetVal <> 0 Then GoTo error                     
    Exit Sub                     
error:                    
    ' An error occurred.                    
    ' Get the error description                    
    Dim ErrorString As String                    
    ErrorString = Space$(256)                    
    mciGetErrorString RetVal, ErrorString, Len(ErrorString)                    
    ErrorString = Left$(ErrorString, InStr(ErrorString, vbNullChar) - 1)                     
    ' close the device if necessary                    
    If deviceIsOpen Then                    
        CommandString = "Close AVIFile"                    
        mciSendString CommandString, vbNullString, 0, 0&                    
    End If                     
    ' raise a custom error, with the proper description                    
    Err.Raise 999, , ErrorString                     
End Sub 

在表单中使用

'Create a Form with a PictureBox and a Command Button
Option Explicit 
Private Sub Command1_Click()
    PlayAVIPictureBox "c:\winnt\clock.avi", Picture1
End Sub
问候

>> ALI <<

From: https://bytes.com/topic/visual-basic/insights/774987-run-avi-files-inside-picture-box

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值