Я пытаюсь найти способ нарисовать что-то на экране, которое будет отображаться поверх всего, что работает (даже полноэкранные приложения), но не будет красть фокус или действовать как обычное приложение или окно. Он должен быть чисто визуальным и не вмешиваться каким-либо другим способом.
Предпочтителен Python.
То, на что я нацеливаюсь, - это сделать мой python script отображать уведомление на экране, возможно, только некоторый текст (прозрачный фон), и чтобы он показывался перед тем, что вы делаете в время.
Я пробовал wxpython, но либо окно крадет фокус, либо я использую трюк, чтобы не украсть фокус, и он не появляется перед моими полноэкранными приложениями. Похоже, что wxpython действительно не сделан для того, что я хочу делать, поскольку он не должен быть графическим интерфейсом, он просто должен быть уведомлением, которое появляется временно и не вводит пользователя.
В общем, вы не можете написать приложение, которое гарантирует пребывание поверх других приложений, которые хотят оставаться поверх других приложений.
Поскольку полноэкранное приложение - это окно, которое является самым верхним, ОС не знает, что ваше самое верхнее окно должно быть самым верхним, чем другое самое верхнее окно.
В идеале вы должны найти способ взаимодействия с другим приложением.
Однако вот некоторые трюки, которые вы можете попробовать, которые могут работать в некоторых ситуациях:
SetWindowPos
с SWP_NOACTIVATE
и HWND_TOPMOST
, чтобы переместить его на передний план без активации.SPI_SETFOREGROUNDLOCKTIMEOUT
в SystemParametersInfo
на небольшое значение.Обратите внимание, что эти трюки не помогут, если другое окно делает то же самое.
Полезный документ здесь: