他是用一张软盘把程序拷到一台没装vb的机器上的,大小就是197k,不知道是什么api!
这个小气鬼临走的时候还按shift+delete删除了程序.

解决方案 »

  1.   


    ' 播放指定磁盘中的视频文件
    ' FilaName 为视频文件的文件名, FullScreen 为是否全屏幕播放, hwnd 为播放窗口的句柄
    Function PlayVideo(ByVal FileName As String, ByVal FullScreen As Boolean, Optional ByVal hwnd As Long) As Boolean
        mciSendString "close video", 0, 0, 0
        If hwnd = 0 Then
            mciSendString "open " & FileName & " alias video", 0, 0, 0
        Else
            mciSendString "open " & FileName & " alias video parent " & hwnd & " style child", 0, 0, 0
        End If
        mciSendString "set video time format ms", 0, 0, 0
        PlayVideo = mciSendString("play video from 0 " & IIf(FullScreen, "fullscreen", ""), 0, 0, 0)
    End Function' 播放CD中指定的轨道的曲目
    ' Action 为播放开关, Track 为指定的轨道(从头播放设为1)
    Function PlayCD(ByVal Action As PlaySwitch, Optional ByVal Track As Integer) As Boolean
        If Action = StartPlay Then
            Dim nCurrentTrack As Integer
            mciSendString "open cdaudio alias cd wait", 0&, 0, 0                ' 打开设备
            mciSendString "set cd time format tmsf", 0&, 0, 0                   ' 设置轨道时间格式(默认为毫秒)
            PlayCD = mciSendString("play cd from " & CStr(Track), 0&, 0, 0)     ' 播放指定轨道的曲目
        ElseIf Action = StopPlay Then
            mciSendString "stop cd wait", 0&, 0, 0                   ' 停止播放
            DoEvents                                                 ' 让 Windows 处理事件
            PlayCD = mciSendString("close cd", 0&, 0, 0)             ' 关闭设备
        End If
    End Function' 播放资源文件中的.wav文件
    ' ID 为.wav文件的标识号
    Function PlayResSound(ByVal ID As Integer) As Boolean
        Dim SoundBuffer() As Byte
        SoundBuffer = LoadResData(ID, "CUSTOM")
        PlayResSound = sndPlaySound(SoundBuffer(0), SND_ASYNC Or SND_NODEFAULT Or SND_MEMORY)
    End Function' 播放指定磁盘中的音乐文件(.wav或.mid或.mp3)
    ' Filename 为音乐文件的路径及文件名
    Function PlaySound(ByVal FileName As String) As Boolean
        Dim cmd As String, exName As String
        exName = Right(FileName, 3)
        mciSendString "close " & exName, 0, 0, 0
        cmd = "open " & FileName & " alias " & exName
        mciSendString cmd, 0, 0, 0
        PlaySound = mciSendString("play " & exName, 0, 0, 0)
    End Function
      

  2.   

    生命
    #If Win32 Then
        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 sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long
    #ElseIf Win16 Then
        Private Declare Function mciSendString Lib "mmsystem" (ByVal lpstrCommand As String, ByVal lpstrReturnStr As Any, ByVal wReturnLen As Integer, ByVal hCallBack As Integer) As Long
        Private Declare Function sndPlaySound Lib "mmsystem.dll" (ByVal lpszSoundName As String, ByVal uFlags As Integer) As Integer
    #End If
      

  3.   

    finaldata 扫描一下硬盘就OK了
      

  4.   

    //finaldata 扫描一下硬盘就OK了
    是别人的机器,等我装上finaldata时发现已经被覆盖了,要不然就不用来问了,
    最好知道是怎么实现xp窗体的,
      

  5.   

    //zyg0(影子(转了1圈,我又回来了) 原来是mciSendString,我以前用过,忘了支持几种格式,不知道支持asf吗.但是微软肯定
    不会支持rm,还需要别的api,
      

  6.   

    你是什么系统?
    会不会是用了资源文件?VB写出的程序几千行代码也不到100K呀。
      

  7.   

    确切的说是4500行,经过处理,也不到100K!
    4500行能干什么呢?自己想吧!谁说ASF不支持?谁说RM不支持?Win98下放的好好的,甚至它还支持网络!(不过一切到了XP里,好像有点问题,死XP,Kill It!)若不考虑界面的话,VB应该能做到全功能播放<100K顺便问一下,你说的那个程序,也是VB编的?
      

  8.   

    //你是什么系统?
      会不会是用了资源文件?VB写出的程序几千行代码也不到100K呀。
     
      2000
      没用资源文件,软盘上只有一个197k的exe//顺便问一下,你说的那个程序,也是VB编的?
      是的,vb,所以我猜2000系统里肯定带有这些api
      

  9.   

    197K的播放器不难啊,用个MMI试试看,编译后EXE再用UPX压缩一下,或许更小吧。
      

  10.   

    如果MMC是微软媒体控制,肯定不会支持rm,还需要其他api
      

  11.   

    /没用资源文件,软盘上只有一个197k的exe
    要不你看看豆子的文档吧,有一个程序是看你的程序中有没有资源文件的。
    资源文件和代码编译出来的是一个文件呀。
      

  12.   

    不管什么API,没有Real的库支持,是不可能放RM的(除非自己编解码器!有空,微软也没编)
    你试试把Program Files\Common Files下的Real库删掉,再用它来放,若还能放,就确定了肯定不是MCI(目前,我一个很小的简化配置,Real库就有200多个文件,近30M,一张软盘?是ZIP吧。另外,微软的媒体控制的接口,是可以支持RM的,网上有的是这样的插件,并不大,一般小于5M
    再找个QT的插件,微软的媒体播放就能支持所有的格式了(前提要升到9。0) ,编程者就简单多了(我就不用RealOne控件,难看死了)就像初始Win98下的MCI是不支持WMA的,但媒体播放器升到7。0以上,就支持了,而代码不用变。
    所以对MCI来说,除了极少数的实时流媒体格式以外,只要系统的媒体播放器能放的,MCI都能放。我说它9成是用MCI编的(前提,系统已有Real的库)
      

  13.   

    //用API播放mpeg,rm,asf几类媒体文件这个嘛,我觉得,要是目标机上没有安装REAL,WMP等软件,是一定不能实现的.....//xp窗体风格这个好说,自己画一个就成,并不会有太大的文件体积(我自己的软件里就用了自己画的XP控件,不经压缩有66K大,压缩了后就只有32K了)//我说它9成是用MCI编的(前提,系统已有Real的库)赞成"前提,系统已有Real的库"
      

  14.   

    刚刚我试了一下,在VB的工程里引用WMP和REAL的控件,再在属性里设置了一下播放路径,直接运行程序,就可以播放这些文件了(一句代码没有)生成EXE后,没有压缩时的大小是16K,压缩后为10.5K