Получение консоли Python для прошивки в панели задач Windows

Когда вы переходите на другую страницу, браузер загрузит новую страницу, и весь ваш setTimeout / etc на старой странице будет потерян, как и игра, и начните новую игру.

Вы можете попробовать Одностраничное приложение , которое вся ваша страница находится в одной и той же DOM и может достичь вашего результата

0
задан Daniel Paczuski Bak 16 January 2019 в 23:25
поделиться

1 ответ

Используйте FlashWindowEx , чтобы специально мигать только значок на панели задач. Для обычного консольного окна получите дескриптор окна через GetConsoleWindow. Это может не работать для альтернативных консолей, таких как ConEmu, если только это не одна из функций API, которую они взламывают.

Например:

import ctypes
from ctypes import wintypes

kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
user32 = ctypes.WinDLL('user32', use_last_error=True)

FLASHW_STOP = 0
FLASHW_CAPTION = 0x00000001
FLASHW_TRAY = 0x00000002
FLASHW_ALL = 0x00000003
FLASHW_TIMER = 0x00000004
FLASHW_TIMERNOFG = 0x0000000C

class FLASHWINFO(ctypes.Structure):
    _fields_ = (('cbSize', wintypes.UINT),
                ('hwnd', wintypes.HWND),
                ('dwFlags', wintypes.DWORD),
                ('uCount', wintypes.UINT),
                ('dwTimeout', wintypes.DWORD))
    def __init__(self, hwnd, flags=FLASHW_TRAY, count=5, timeout_ms=0):
        self.cbSize = ctypes.sizeof(self)
        self.hwnd = hwnd
        self.dwFlags = flags
        self.uCount = count
        self.dwTimeout = timeout_ms

kernel32.GetConsoleWindow.restype = wintypes.HWND
user32.FlashWindowEx.argtypes = (ctypes.POINTER(FLASHWINFO),)

def flash_console_icon(count=5):
    hwnd = kernel32.GetConsoleWindow()
    if not hwnd:
        raise ctypes.WinError(ctypes.get_last_error())
    winfo = FLASHWINFO(hwnd, count=count)
    previous_state = user32.FlashWindowEx(ctypes.byref(winfo))
    return previous_state
0
ответ дан eryksun 16 January 2019 в 23:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: