zlo-kazan
Скриптер
- Сообщения
- 374
- Репутация
- 100
Прочитав кучу рассказов о Хакерах и не только в далеком прошлом. Встречал такую вещь, что у них на компьютере стоит хитрая программка распознающая свой/чужой. И при запуске компьютера если не ввести секретный код, то жесткий с системой сразу форматируется или наоборот если ввести... =) (окно ввода не появлется... т.е. сделано на хоткеях)
Есть замечательная функция Hotkeyset, но она распознает или только 1 клавишу или сочетание с ALT, CRTL, SHIFT... А хочется полноценный пароль хотя бы в 4-6 символов.
Попробовал реализовать через последовательность функций. Проблема в том, что рано или поздно ты все нажмешь эти клавиши и после при нажатии конечной клавиши будет опять срабатывать последняя функция.
Пример:
Можно первое:
Воспользоваться: AdlibRegister в него загнать функцию которая будет сбрасывать переменные в 0 раз 1000 ms. Но тут проблема если вводишь под конец 1000ms цикла то обнуляются все переменные.
Также пробовал сделать, что-то подобное:
Получается, что даже если сбросил переменные в 0, то Hotkeyset стал доступен... и если нажать правильно следующую клавишу, то откроется следующий хоткей...
Далее додумал:
Получилось пока не нажмешь нужную последовательность Хоткеев за 1000ms срабатывать не будет...
1. Остался вопрос возможно ли, как-нибудь отменить Hotkeyset()? Кроме как через _ScriptRestart().
2. Так же, как реализовать, чтобы при нажатии на любую другую клавишу шел сброс... т.е. ошибся последовательностью и нажал не ту клавишу и все сбрасывает до начала...
3. Так же возможно у кого-нибудь есть мысли, как всю эту функцию прописать более правильно или изящно в 1-2 строчки.
4. Как можно сделать так, чтобы и HotKey срабатывал и оригинальная клавиша нажималась.
Буду рад за любые мысли и комментарии. :IL_AutoIt_1:
Есть замечательная функция Hotkeyset, но она распознает или только 1 клавишу или сочетание с ALT, CRTL, SHIFT... А хочется полноценный пароль хотя бы в 4-6 символов.
Попробовал реализовать через последовательность функций. Проблема в том, что рано или поздно ты все нажмешь эти клавиши и после при нажатии конечной клавиши будет опять срабатывать последняя функция.
Пример:
Код:
Hotkeyset("{A}", "keyB")
Func keyB()
$A=1
Hotkeyset("{B}", "keyC")
Endfunc
Func keyC()
$B=1
Hotkeyset("{C}", "keyD")
Endfunc
Func keyD()
$C=1
If $A=1 and $B=1 then
_unlock()
Endif
EndFunc
Func _unlock()
;XXXX
;XXXX
;XXXX
EndFunc
Можно первое:
Воспользоваться: AdlibRegister в него загнать функцию которая будет сбрасывать переменные в 0 раз 1000 ms. Но тут проблема если вводишь под конец 1000ms цикла то обнуляются все переменные.
Также пробовал сделать, что-то подобное:
Код:
Func keyC()
$B=1
Hotkeyset("{C}", "keyD")
Sleep(1000)
If $C=0 then
$A=0
$B=0
EndIf
Endfunc
Далее додумал:
Код:
Func keyC()
If $A=1 then
$B=1
Hotkeyset("{C}", "keyD")
EndIf
sleep(1000)
If $D=0 then
$A=0
$B=0
$C=0
EndIf
Endfunc
1. Остался вопрос возможно ли, как-нибудь отменить Hotkeyset()? Кроме как через _ScriptRestart().
2. Так же, как реализовать, чтобы при нажатии на любую другую клавишу шел сброс... т.е. ошибся последовательностью и нажал не ту клавишу и все сбрасывает до начала...
3. Так же возможно у кого-нибудь есть мысли, как всю эту функцию прописать более правильно или изящно в 1-2 строчки.
4. Как можно сделать так, чтобы и HotKey срабатывал и оригинальная клавиша нажималась.
Буду рад за любые мысли и комментарии. :IL_AutoIt_1: