Проблема с ави

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Шнурок
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 12.11.2004 (Пт) 19:28
Откуда: Санкт-Петербург

Проблема с ави

Сообщение Шнурок » 10.12.2005 (Сб) 7:06

Нажимаю на комманд1 и файл проигрывается, потом еще раз и он опять проигрывается, а в следующий - пишет мол ошибка тут:
Код: Выделить всё
Err.Raise 999, , ErrorString

З.Ы. как сделать что бы он проигрывался бесконечно, точнее до определенного события?
Зарание спасибо.

З.Ы.Ы.
Вот код:
Код: Выделить всё
Private Declare Function mciSendString Lib "winmm" 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" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Const WS_CHILD = &H40000000
Sub PlayAVIPictureBox(Filename As String, ByVal Window As PictureBox)
On Error Resume Next
Dim RetVal As Long
Dim CommandString As String
Dim ShortFileName As String * 260
Dim deviceIsOpen As Boolean
RetVal = GetShortPathName(Filename, ShortFileName, Len(ShortFileName))
Filename = Left$(ShortFileName, RetVal)
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
deviceIsOpen = True
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
CommandString = "Play AVIFile wait"
RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
If RetVal <> 0 Then GoTo error
CommandString = "Close AVIFile"
RetVal = mciSendString(CommandString, vbNullString, 0, 0&)
If RetVal <> 0 Then GoTo error
Exit Sub
error:
Dim ErrorString As String
    ErrorString = Space$(256)
    mciGetErrorString RetVal, ErrorString, Len(ErrorString)
    ErrorString = Left$(ErrorString, InStr(ErrorString, vbNullChar) - 1)
If deviceIsOpen Then
    CommandString = "Close AVIFile"
    mciSendString CommandString, vbNullString, 0, 0&
End If
Err.Raise 999, , ErrorString
'Err.Raise 1, "send.avi", ErrorString
'Err.Clear
End Sub
Private Sub Command1_Click()
PlayAVIPictureBox "send.avi", Picture1
End Sub
02.01.2004

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 112

    TopList  
cron