VB: проблема с Sleep API - PullRequest
       9

VB: проблема с Sleep API

0 голосов
/ 05 апреля 2011

Я создаю таймер обратного отсчета в powerpoint и использую спящий API ядра32 (в ppt). При выходе из режима слайд-шоу (но при сохранении работы макроса) после того, как таймер работал в течение значительного периода времени, мой рабочий стол Windows полностью теряет силу и становится полностью непригодным для использования (экран становится странно серым). Рабочий стол иногда возвращается и снова начинает работать, однако открытие IE приводит к тому, что экран снова становится все чище.

Есть идеи, что может быть причиной этой проблемы? Код таймера ниже

            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

1 Ответ

0 голосов
/ 05 апреля 2011

Использование DoEvents может вызвать некоторые довольно странные проблемы.Попробуйте использовать таймер вместо Sleep / DoEvents.

...