PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » OpenWindowedScreen и Таймеры останавливаются после простоя Windows


OpenWindowedScreen и Таймеры останавливаются после простоя Windows

Сообщений 1 страница 4 из 4

1

OpenWindowedScreen перестаёт работает если ПК отключил в простое монитор. И таймеры тоже.
Подскажите, есть решение какое?
Выводить таймеры из окна, по другому реализовывать?

0

2

Ev3658 написал(а):

OpenWindowedScreen перестаёт работает если ПК отключил в простое монитор. И таймеры тоже.

Если речь про выключение монитора при бездействии пользователя, то нормально работает тестовый пример.

Код:
  If InitSprite() = 0
    MessageRequester("Ошибка", "Не могу открыть экран & среда спрайтов!", 0)
    End
  EndIf
  
  If OpenWindow(0, 0, 0, 220, 160, "Экран в окне...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ButtonGadget(0, 170, 135, 45, 20, "Quit")

    If OpenWindowedScreen(WindowID(0), 0, 0, 160, 160)
      CreateSprite(0, 20, 20)
      If StartDrawing(SpriteOutput(0))
        Box(0, 0, 20, 20, RGB(255, 0, 155))
        Box(5, 5, 10, 10, RGB(155, 0, 255))
        StopDrawing()
      EndIf
    Else
      MessageRequester("Ошибка", "Не могу открыть оконный экран!", 0)
      End
    EndIf
  EndIf
  
  AddWindowTimer(0, 0, 2000)
  
  direction = 2
  Repeat
    ; Очень важно обрабатывать все события оставшиеся в очереди, в каждом кадре
    ;
    Repeat
      Event = WindowEvent()
      
      Select Event 
        Case #PB_Event_Gadget
          If EventGadget() = 0
            End
          EndIf
          
        Case #PB_Event_Timer
          MessageBeep_(#MB_ICONERROR)
        Case #PB_Event_CloseWindow
          End 
      EndSelect
    Until Event = 0
  
    FlipBuffers() 
    ClearScreen(RGB(0, 0, 0))
    DisplaySprite(0, x, x)
    x + direction
    If x > 140 : direction = -2 : MessageBeep_(#MB_ICONWARNING) : EndIf
    If x < 0   : direction =  2 : MessageBeep_(#MB_ICONWARNING) : EndIf
    Delay(1)
  ForEver

Монитор выключен, а звуки есть.

0

3

Привет! Спасибо за скорый ответ!
Я тут в догадках. На одном компьютере c Win7 всё нормально, даже с выходом из сна. А вот на другом с Win10 останавливаются таймеры и что-то с спрайтовым окном при отключении экрана по простою.
Попробую изучить этот феномен. Видео карты не старые (поддерживают спрайты больше разрешения экрана).

0

4

Попробуйте в окне настроек компилятора ввести DirectX9 или DirectX11 в поле "Библиотека подсистемы".
Это изменит метод вывода картинки на экран и может будет нормально работать.

+1


Вы здесь » PureBasic - форум » Вопросы по PureBasic » OpenWindowedScreen и Таймеры останавливаются после простоя Windows