我是一个学vb的新手,程序如下:
private sub TimeGetTime Lib"winmm.dll"() AS Long
private sub savetime(n)
dim savetime#
while TimeGetTime<savetime+n
DoEvents
wendPrivate Sub showtime()
time.Caption = player.Controls.currentPositionString
time1.Caption = player.currentMedia.durationString
Call savetime(1000)
Call showtime
End SubPrivate Sub Form_Load()
call showtime
End Sub
这个过程是用来显示window media player播放器控件时间的,运行此程序时会导致cpu占用100%
此外,当打开一个音乐文件后,再关闭程序的时候会出现错误:"未设置对象变量或with block变量"调试出错的是这一句:time1.Caption = player.currentMedia.durationString 我真不明白,请高手指点,如何解决cpu 100% 如何修改上面的错误
万分感谢

解决方案 »

  1.   

    private sub savetime(n)
      dim savetime_ as single
      savetime_ = timer
      while Timer < savetime_+n
        DoEvents
      wend
    end sub控件也许是已经退出播放状态了,再调用就有问题了。
    time1.Caption = player.currentMedia.durationString 
      
    ————————————————————————————————————
    写作,虽然每个人都会查阅辞海,可,不是人人都能写出不朽的篇章的。编程,如是也。
      

  2.   

    Dim start
            Dim Pausetime As Double
            
            Pausetime = msec / 1000        start = Timer   
            Do While Timer < start + Pausetime
                If bStop = True Then Exit Sub
                DoEvents
            Loop
      

  3.   

    个人认为还是用API函数SLEEP后面加DOEVENTS比较划算,如果需要不停的检查,并实现一定的操作可以http://blog.csdn.net/zcsor/archive/2007/03/01/1518095.aspx虽然里面有几个问题,但是方法基本可行....如果要知道等待了多少时间等等,可以获取开机经过的毫秒然后去计算.....