Что нового

Полупрозрачный оверлей поверх всего дисплея, вне фокуса

JIeo_NEED

Прокачиваю знание AutoIt
Сообщения
17
Репутация
2
Всем привет.
Очень надеюсь, не ошибся с разделом.

Подскажите, пожалуйста, в какую сторону копать со следующей задачкой:
Требуется выводить полупрозрачное изображение (либо текст) поверх всего, находящегося на дисплее.
Однако он не должен мешать работе с компьютером (не "собирать" на себя клики, быть вне фокуса).

Зачем:
Я - слабовольное существо, постоянно забываю про задачи, которые требуется сделать.
Писал их на рабочем столе, но на него, как оказалось, я выхожу, в лучшем случае, раз в два дня.
Думаю, будет сложно не замечать этот оверлей, и он спасет мою жизнь.

Версию AutoIt могу использовать любую из последних.

Спасибо.
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
361
JIeo_NEED

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


$WS_EX_NOACTIVATE = 0x08000000
$hWndGUI = GUICreate('My GUI', 300, 350, -1, -1, $WS_POPUP, BitOR($WS_EX_TRANSPARENT, $WS_EX_TOPMOST, $WS_EX_NOACTIVATE), $WS_EX_TOOLWINDOW)
GUICtrlCreateLabel('Прозрачное' & @CRLF & 'изображение', 10, 10)

WinSetTrans($hWndGUI, '', 155); прозрачность 0 - 255
GUISetState(@SW_SHOW)


While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			ExitLoop
	EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
WSWR,
А зачем $WS_EX_NOACTIVATE? Можно и так.
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $fExit

$hWndGUI = GUICreate('My GUI', 300, 350, -1, -1, $WS_POPUP, BitOR($WS_EX_TRANSPARENT, $WS_EX_TOPMOST, $WS_EX_TOOLWINDOW))
GUICtrlCreateLabel('Прозрачное и проницаемое изображение', 10, 10)

WinSetTrans($hWndGUI, '', 155); прозрачность 0 - 255
GUISetState(@SW_SHOWNOACTIVATE)
HotKeySet('{Esc}', '_Exit')

While Not $fExit
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			ExitLoop
	EndSwitch
WEnd
ConsoleWrite('Exit' & @LF)
Func _Exit()
	$fExit = True
EndFunc   ;==>_Exit
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
И у меня, и у WSWR ошибка (опечатка) в коде в функции GUICreate.
У себя поправил.
 
Верх