Что нового

Выключение монитора( без возможности включения движением мыши )

SharkyEXE

Новичок
Сообщения
134
Репутация
0

CreatoR


Здравствуйте

1) Супер, отлично, я Вас очень прошу, помогите последнее пожелание

Это оставить

запустил скрипт, монитор погас, толкаешь мышку или на мышке нажимаешь кнопки - монитор НЕ включается, если нажать любую кнопку на клавиатуре - монитор ВКЛючился + мышка стала рабочей - как на перемещение мышки, так и на мышке нажимаешь кнопки

Добавить это

если ничего не делать 1 минуту - скрипт снова запустится, монитор гаснет
если зайти в трей, один раз правой кнопкой мышки тыкнуть на значок Вашей программы, появится менюшка, один раз левой кнопкой мышки нажать на строку Выход/Закрыть - все, монитор БОЛЬШЕ не погаснет, пока снова не запустишь Вашу программу

2) Я не профессионал, просто могу сравнить, просьба Вас на меня не обижаться, просто когда из этого кода
делаю exe файл - запускаю файл, сразу монитор гаснет

Однако, когда из этого кода
делаю exe файл - запускаю файл, монитор Не гаснет сразу, типа какая-то пауза 5-7 секунд

Условия 100%но одинаковые, антивирус ВКЛючен

Если бы дело было в антивирусе - то первый код ТОЖЕ бы запускался с некой задержкой

Пожалуйста, помогите
 
Последнее редактирование:

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <WinAPISys.au3>
#include <WinAPIvkeysConstants.au3>

Global $iOff = 1

;HotKeySet('{Esc}', _Exit)
Opt('TrayMenuMode', 3)
Opt('TrayOnEventMode', 1)
TraySetClick(16)  
TrayItemSetOnEvent(TrayCreateItem('Выход/Закрыть'), _Exit)
TraySetState(1)

_Monitor_Switch(True)
Sleep(1000)

While 1
    If $iOff Then
        _Monitor_Switch(True)
        
        For $i = $VK_BACK To $VK_OEM_CLEAR
            If _WinAPI_GetAsyncKeyState($i) < 0 Then
                $iOff = 0
                _Monitor_Switch(False)
                ;_Exit()
            EndIf
        Next
    ElseIf Not $iOff And _WinAPI_GetIdleTime() >= 60 * 1000 Then
        $iOff = 1
    EndIf
    
    Sleep(10)
WEnd

Func _Monitor_Switch($bOff)
    Local $hWnd = WinGetHandle('[CLASS:Progman]')
    
    Local Const $WM_SYSCOMMAND = 274
    Local Const $SC_MONITORPOWER = 61808
    Local Const $iOff = 2, $iOn = -1
    
    _SendMessage($hWnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, ($bOff ? $iOff : $iOn))
EndFunc

Func _Exit()
    _Monitor_Switch(False)
    Exit
EndFunc


делаю exe файл - запускаю файл, монитор Не гаснет сразу, типа какая-то пауза 5-7 секунд
Странно, это только при скомпилированном скрипте?
 

SharkyEXE

Новичок
Сообщения
134
Репутация
0
Странно, это только при скомпилированном скрипте?

Здравствуйте

Да, можете проверить у Вас, просто как бы затык получается в бесконечном цикле While 1 - WEnd, может я ошибаюсь, я не профессионал, просьба простить

Просто если бы Вы проверили оба скомпилированных скрипта при одинаковых условиях - Вам бы виднее было бы, можно даже сделать вывод в лог - типа запусти Ваш скрипт, выполнилась команда погасить монитор - сколько времени прошло

Можно запустить предыдущий скрипт, выполнилась команда погасить монитор - сколько времени прошло

Сравнить два текстовых файла
 

SharkyEXE

Новичок
Сообщения
134
Репутация
0

CreatoR


Здравствуйте

Последний вариант тоже

Ну да ладно, большое Вам спасибо за помощь
 

SharkyEXE

Новичок
Сообщения
134
Репутация
0

CreatoR

Здравствуйте

Пожалуйста, помогите, а возможно или нет в этой версии:

1) сделать так, чтобы не любая кнопка на клавиатуре монитор зажигала, а ТОЛЬКО двойное нажатие кнопки ESCAPE?

2) в трей, помимо опции "Выход/Закрыть", добавить опцию "Погасить экран"

3) когда зажегся монитор (двойное нажатие кнопки ESCAPE на клавиатуре), чтобы выводилась табличка "Монитор будет потушен автоматически после 60 секунд"

Спасибо.
 
Верх