"""Один экземпляр панели — клик по toast шлёт действие в уже запущенный процесс."""

from __future__ import annotations

import sys

MUTEX_NAME = "Global\\AXON.DumpRadar.Panel"


def acquire_single_instance() -> bool:
    """True — мы главный процесс. False — уже запущен другой экземпляр."""
    if sys.platform != "win32":
        return True
    import ctypes

    kernel32 = ctypes.windll.kernel32
    ERROR_ALREADY_EXISTS = 183
    handle = kernel32.CreateMutexW(None, False, MUTEX_NAME)
    if not handle:
        return True
    if kernel32.GetLastError() == ERROR_ALREADY_EXISTS:
        kernel32.CloseHandle(handle)
        return False
    return True
