mciSendString 怎么获取播放状态下面的一段代码有什么问题(怎么老是"stopped"?)Public Function GetStatus(nowplay As String) As String '获取播放状态
Dim strStatus As String
strStatus = String(256, Chr(0))
mciSendString "status " & nowplay & " mode", strStatus, Len(strStatus), 0
GetStatus = Left(strStatus, 7)
End Function
Dim strStatus As String
strStatus = String(256, Chr(0))
mciSendString "status " & nowplay & " mode", strStatus, Len(strStatus), 0
GetStatus = Left(strStatus, 7)
End Function
解决方案 »
- VBA截屏保存
- 有一个字段是图片格式,image,为什么在vsflexgrid不能显示?
- s=1+1/3!+1/5!+1/7!+......
- 我用Webbrowser控件,请问如何在VB中彻底清除IE缓冲区中刚才用Navigate打开的网页,当再用Navigate打开网页时,像是重新启动IE一样,不要
- 如何在vb中使用事务
- 我要申请EVB的斑竹,请大家支持我,虽然我技术不是最好,但我一定尽力帮大家!
- VB中的结构体在哪里定义
- right函数的使用
- !!!!怎样改变VB6的菜单位置---送分!!!!
- 能否介绍几个国内和国外代收注册费的网站(要求信誉好)?
- vb如何搜索游戏内存地址
- 定时删除文件出错处理
模块代码:
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
Public Function GetStatus(nowplay As String) As String '获取播放状态
Dim strStatus As String
strStatus = String(256, Chr(0))
mciSendString "status " & nowplay & " mode", strStatus, Len(strStatus), 0
GetStatus = Left(strStatus, 7)
End FunctionPublic Sub Restartmedia(atfrm As Form, filename As String) '重新播放
Dim nReturn As Long
Call openmedia(atfrm, filename)
mciSendString "Seek " & filename & " to " & 0, "", 0, 0
Call playmedia(atfrm)
End SubPublic Sub playmedia(atfrm As Form) '播放
atfrm.ScaleMode = vbPixels
mciSendString "put MyAVI window at 0 0 " & atfrm.ScaleWidth & " " & atfrm.ScaleHeight, vbNullString, 0, 0
mciSendString "play MyAVI", vbNullString, 0, 0
End Sub
Public Sub openmedia(atfrm As Form, filename As String) '打开媒体
mciSendString "close MyAVI", vbNullString, 0, 0
mciSendString "open " & filename & " alias MyAVI parent " & atfrm.hWnd & " style child", vbNullString, 0, 0
End SubPublic Sub closemedia() '关闭媒体
mciSendString "close MyAVI", vbNullString, 0, 0
End SubPublic Sub Pause() '暂停
Dim nReturn As Long
If GetStatus = "paused" Then '如果先前已经暂停了,则解除暂停
playmedia
Else
mciSendString "Pause " & PathName, "", 0, 0
End If
End Sub窗体代码:Private Sub Form_Load()
PathName = App.Path
If Right(PathName, 1) <> "\" Then PathName = PathName & "\"
PathName = PathName & "donghua.avi"
Call openmedia(Me, PathName)
Call playmedia(Me)
End SubPrivate Sub tmrshow_Timer()
Debug.Print GetStatus(PathName) '打印状态
End Sub
Dim strStatus As String
strStatus = String(256, Chr(0))
mciSendString "status MyAVI mode", strStatus, Len(strStatus), 0
'原来是mciSendString "status " & nowplay & " mode", strStatus, Len(strStatus), 0
GetStatus = Left(strStatus, 7)
End Function现在可以获取状态了(MyAVI是别名,我是新手,代码是看别人的,开始弄不清楚)