2011-04-05 3 views
0

저는 powerpoint에서 카운트 다운 타이머를 만들고 kernel32 sleep API (ppt에서)를 사용하고 있습니다. 상당한 시간 동안 타이머를 실행 한 후 슬라이드 쇼 모드를 종료하면 (매크로는 계속 유지) 내 Windows 바탕 화면이 완전히 엉망이되어 완전히 사용할 수 없게됩니다 (화면이 이상한 회색으로 변합니다). 바탕 화면이 비정상적으로 다시 돌아와서 다시 작동하기 시작하지만 IE를 열면 화면이 다시 돌아옵니다.VB : Sleep API 문제

이 문제의 원인은 무엇입니까? 아래의 타이머 코드

  Do While (TMinus > -1) 
      'Suspend program execution for 1 second (1000 milliseconds) 
      Sleep 1000 

      'set hours, muinutes and seconds left based on number of seconds left (TMinus) 
      cHour = Int(TMinus/3600) 
      cMin = Int((TMinus Mod 3600)/60) 
      cSec = Int((TMinus Mod 3600) Mod 60) 

      'Change text in Shape 1 (timer) to reflect changed time 

      .TextFrame.TextRange.Text = Format(TimeSerial(cHour, cMin, cSec), "hh:mm:ss") 

      'decrement the countdown 
      TMinus = TMinus - 1 
      'Refreshes the display 
      DoEvents 
     Loop 
+0

'Sleep'을 사용할 때 DoEvents는 필요하지 않습니다. 왜냐하면'Sleep'은 매크로가 잠자기 상태 일 때 다른 프로세스를 제어하기 때문입니다. –

답변

0

DoEvents를 사용하면 다소 이상한 문제가 발생할 수 있습니다. Sleep/DoEvents 대신 타이머를 사용해보십시오.