Привет ребят! Есть код для Windows, который определяет клик вне окна. А вот как, сделать это кроссплатформенно?

Код:
#Window = 0
Global Thread

Procedure _Thread(Parameter)
  
  Protected p.POINT
  Protected Flag = GetAsyncKeyState_(#VK_LBUTTON)

  Repeat
    If Flag <> GetAsyncKeyState_(#VK_LBUTTON)
      If Not Flag
        GetCursorPos_(p)
        If WindowFromPoint_(PeekQ(@p)) <> WindowID(#Window)
          Debug "Клик вне окна"
        EndIf
      EndIf
      Flag = GetAsyncKeyState_(#VK_LBUTTON)
    EndIf
    Delay(100)
  Until Not IsWindow(#Window)
  
  KillThread(Thread)
EndProcedure



OpenWindow(#Window, 0, 0, 220, 100, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

Thread = CreateThread(@_Thread(), 0)

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

Отредактировано Webarion (03.01.2022 14:37:53)