首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

关于mciSendString打包有关问题,

2012-03-16 
关于mciSendString打包问题,高手请进!我简单的做了个在Picturebox里播放视频的程序,用到了mciSendString,

关于mciSendString打包问题,高手请进!
我简单的做了个在Picturebox里播放视频的程序,用到了mciSendString,打包前执行程序没什么问题,但是打包后老是出错:运行时错误 13 ,类型不匹配。代码如下:

VB code
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 LongPrivate Declare Function SetWindowPos Lib "USER32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongSub PlayVideo(vName As String)    '播放视频文件    Dim tmpVal As String, KeyValSize As Long, result As Long    Picture1.ScaleMode = 3    Picture1.BorderStyle = 0    mciSendString "open " & vName & " type MPEGVideo alias Mympg parent " & Picture1.hwnd & " style child WAIT ", vbNullString, 0, 0    tmpVal = String$(256, 0)    KeyValSize = 256    result = mciSendString("STATUS Mympg WINDOW HANDLE WAIT ", tmpVal, KeyValSize, 0)     tmpVal = Left(tmpVal, KeyValSize)    SetWindowPos CLng(tmpVal), 0, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, 0    mciSendString "play Mympg ", vbNullString, 0, 0End SubPrivate Sub Form_Activate()    PlayVideo App.Path & "\dj0.wmv"End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)    mciSendString "close Mympg ", vbNullString, 0, 0End Sub


我分析了下,应该是
VB code
result = mciSendString("STATUS Mympg WINDOW HANDLE WAIT ", tmpVal, KeyValSize, 0)
这句没有执行成功,导致tmpVal为空,下面调用SetWindowPos 时出错。但是打包后为什么会这样呢,求解!

[解决办法]
我把SetWindowPos CLng(tmpVal), 0, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, 0
屏蔽了,可以运行,也能播放

热点排行