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: AutoHotKey для перехода между дисками как в Dos Navigator 
Author Message
ZEV1416



PostPosted: Mon May 08, 2006 17:47    Post subject: AutoHotKey для перехода между дисками как в Dos Navigator Reply with quote

Давно лелеял идею сделать поведение ТС аналогично Дос Навигатору. Если кто помнит, при включенной опции "различать клавиши КТРЛ", можно было ходить с диска на диск удержением клавиши КТРЛ (правой для правой панели, левой - для левой панели) и нажатием клавиш "вправо" и "влево" для листания дисков. При отпускании КТРЛ выполнялся переход на выбранный диск. Так вот, я сделал нечто подобное на AutoHotKey. Попробовать можно с помощью сл. скрипта:

DNLCtrlPressed=0
DNRCtrlPressed=0
DNDiskChange=0

LControl::
Send, {LControl Down}
IfWinActive, ahk_class TTOTAL_CMD
DNLCtrlPressed=1
return

RControl::
Send, {RControl Down}
IfWinActive, ahk_class TTOTAL_CMD
DNRCtrlPressed=1
return

$*LControl Up::
IfWinActive, ahk_class TTOTAL_CMD
{
DNLCtrlPressed=0
if DNDiskChange=1
Send, {Enter}
; Send, {LControl Up}
DNDiskChange=0
}
;else
Send, {LControl Up}
Return


$*RControl Up::
IfWinActive, ahk_class TTOTAL_CMD
{
DNRCtrlPressed=0
if DNDiskChange=1
Send, {Enter}
; Send, {RControl Up}
DNDiskChange=0
}
;else
Send, {RControl Up}
Return

^Right::
IfWinActive, ahk_class TTOTAL_CMD
{
if DNRCtrlPressed=1
{
if DNDiskChange=0
{
Send, {Alt Down}{F2}{Alt Up}
Send, {Down}
DNDiskChange=1
}
else
Send, {Down}
}
else
{
if DNLCtrlPressed=1
{
if DNDiskChange=0
{
Send, {Alt Down}{F1}{Alt Up}
Send, {Down}
DNDiskChange=1
}
else
Send, {Down}
}
else
Send, {Right}
}
}
else
Send, {Right}
return

^Left::
IfWinActive, ahk_class TTOTAL_CMD
{
if DNRCtrlPressed=1
{
if DNDiskChange=0
{
Send, {Alt Down}{F2}{Alt Up}
Send, {Up}
DNDiskChange=1
}
else
Send, {Up}
}
else
{
if DNLCtrlPressed=1
{
if DNDiskChange=0
{
Send, {Alt Down}{F1}{Alt Up}
Send, {Up}
DNDiskChange=1
}
else
Send, {Up}
}
else
Send, {Left}
}
}
else
Send, {Left}
return

$Enter::
If WinActive("ahk_class TInpComboDlg")
Send, {F2}
else
Send, {Enter}
return

Да вот незадача: он подключивает, что проявляется в "залипании" клавиш КТРЛ... Помогите плз найти ошибку, ИМХО, скрипт должен пригодиться "старикам", чья память о Дос Навигаторе еще свежа Smile
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group