Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Autorun 
Author Message
Orion9



PostPosted: Sat Jul 26, 2025 13:59    Post subject: Reply with quote

yahuu wrote:
Если это невозможно реализовать, придется использовать AHK.

Да, в AHK есть примеры, как сделать обработку двойного или даже тройного нажатия клавиш, но и в Autorun можно сделать что-то похожее. Самый простой пример:
Code:
SetHotkeyAction /H:F12 F12DoublePress

Func F12DoublePress()
    Static t1 = 0
    If (GetUptime() - t1) < 300 Then
       ShowHint("F12 double pressed")
    EndIf
    t1 = GetUptime()
EndFunc

В примере не учитывается обработка одиночного нажатия, но если она нужна, то её можно добавить.

Loopback
К сожалению, дел ещё по горло и времени на Autorun и на ТС пока нет, но все-таки посмотрел флаг DT_CALCRECT в функции DrawText, как обещал. Заморочек там много, и вряд ли они стоят того, чтобы с ними разбираться. Может быть, вы внесёте изменения в ShowHint и сделаете возможность менять содержимое посказки и другие параметры без вызова новой подсказки? Например, брать хэндл не из макроса LAST_HINT_WINDOW, а от самой функции ShowHint и возвращаемого ей значения. А все остальные операции с подсказкой делать через этот хэндл, включаяя изменение стиля и текста, если требуется.

Ещё одна давняя проблема. На нижней функциональной кнопке "Выход" у меня висит две функции:
Code:
ControlSetMouseAction /L /B:7 17 AutorunStatus
ControlSetHint /F /D:50 /B:7 17 "AutorunHints"

Одна для вызова меню по клику, другая для вызова подсказки по наведению указателя мыши. Если навести мышь на кнопку и нажать до появления подсказки над ней, то ТС очень часто валится. Если нажимать после появления подсказки - то никогда. Вероятно, это связано с тем, что при наведении указателя на кнопку происходит запуск функции ControlSetHint, которая не успев отработать до конца перекрывается вызовом ControlSetMouseAction. Можно как-то решить проблему?

А по поводу Гислера... Ну что тут можно сказать. Меня его смешные и нелепые отмазки не устраивают, и это касается не только drag'n'drop на панелях. Как было отмечено в оригинальном топике, для тех, у кого много кнопок на главной панели, эта фича просто маст-хэв. Я уж не говорю, что совсем не лишним было бы перетаскивание кнопок с панели на панель, например с вертикальной на горизонтальную и наоборот.

AkulaBig wrote:
Наконец-то я закончил переделку сборки на многоязычную. 2202 строки кода на Autorun.

Рад, что дела у вас не стоят на месте. Когда я полность освобожусь, то обязательно посмотрю последнюю версию вашей сборки.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group