Что нового

Гасим экран, ловим мышь

VadimKHL

Новичок
Сообщения
155
Репутация
0
Добрый день!

Подскажите пожалуйста, как можно решить следующую задачу.
Имеем монитор с тач-скрин.
Есть скрипт, в нем кнопка "потушить экран".
При ее нажатии, физически выключается питание матрицы монитора.
Но тач скрин работать продолжает.
И при следующем нажатии на экран (в любое место), нужно включить монитор.

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

VadimKHL

Новичок
Сообщения
155
Репутация
0
Народ, Хелп!
Ничего не получается. :'(


Добавлено:
Сообщение автоматически объединено:

Мысля появилась!

Может это можно так решить, при включении режима "монитор выключен",
создавать окно во весь экран, поверх всех окон.
В нем кнопка, также во весь экран, которая включает монитор.
Тогда точно мышей нажмешь только на включение монитора. :smile:

Тогда возникают следующие вопросы:
1) Возможно ли определить разрешение экрана монитора, что бы создать окно во весь экран?
2) Может ли окно быть по верх панели задач Windows (где пуск кнопка)?
3) Как сделать, что бы данное окно было всегда поверх всех остальных и всегда активном?





Добавлено:
Сообщение автоматически объединено:

Ага,
$WINGUI = GUICreate("SLEEP LCD", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)


Добавлено:
Сообщение автоматически объединено:

Единственный вопрос, номер 3 который.


Добавлено:
Сообщение автоматически объединено:

Вот пока чего добился:
Код:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Opt("TrayIconHide", 1) ; Скрыть иконку в трее.
Opt("GUIOnEventMode", 1) ; Включить режим отслеживания событий GUI.

$WINGUI = GUICreate("SLEEP LCD", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
GUICtrlCreateButton("TURN ON MONITOR", 0, 0, @DesktopWidth, @DesktopHeight)
GUICtrlSetOnEvent(-1, "_CLOSEEvent")
GUISetState(@SW_SHOW, $WINGUI)

While 1
   sleep(100)
WEnd

Func _CLOSEEvent()
    Exit
EndFunc




Добавлено:
Сообщение автоматически объединено:

Т.е. вопрос остался, как сделать окно всегда сверху и активное, что бы не происходило в других программах?
И не сворачиволось по ALT-TAB и т.д. ???


Добавлено:
Сообщение автоматически объединено:

Немного спасает положение $GUISLEEP = GUICreate("SLEEP LCD", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, $WS_EX_TOPMOST),
окно поверх всех окон.

Но проблема осталась, при нажатии кнопки виндовс или ALT-TAB, появляется меню и тулл бар :(
Как можно это решить?



Добавлено:
Сообщение автоматически объединено:

Всем спасибо за помощь. ;D
Проблему решил так:
Код:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Opt("GUIOnEventMode", 1) ; Включить режим отслеживания событий GUI.
Opt("TrayIconHide", 1) ; Скрыть иконку в трее.

$GUISLEEP = GUICreate("SLEEP LCD", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, $WS_EX_TOPMOST)
GUICtrlCreateButton("TURN ON MONITOR", 0, 0, @DesktopWidth, @DesktopHeight)
GUICtrlSetOnEvent(-1, "_CLOSEEvent")
GUISetState(@SW_SHOW, $GUISLEEP)

While 1
   WinWaitNotActive($GUISLEEP)
   WinActivate($GUISLEEP)
WEnd

Func _CLOSEEvent()
    Exit
EndFunc
 
Верх