Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Double Commander

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
#NoEnv
#NoTrayIcon
SetWorkingDir %A_ScriptDir%
#SingleInstance, force
SetTitleMatchMode, 2
SetTitleMatchMode, Slow
SetKeyDelay 50, 50
DetectHiddenWindows On
CoordMode Mouse
CoordMode ToolTip
 
If !FileExist("dc_loader.ini")
    FileAppend [Main]`r`ncmd=`r`n# Параметры командной строки doublecmd.exe`r`ncmd_shift=`r`n# То же с зажатым Shift при запуске`r`npad=0`r`n# Режим планшета с коррекцией двойных нажатий и контекстным меню по длинному и короткому нажатию`r`nfreze_time=150`r`n# Время "подмораживания" мыши при одиночном клике`, мс (0 или pad=1 - выключение функции)`r`ndclick_time=600`r`n# Максимальный интервал двойного тапа на планшете`, мс`r`ndclick_delta=20`r`n# Максимальный разброс положения курсора при двойном тапе`, пикселей`r`nmbutton=2`r`n# Назначение среднего клика мыши (1 - на уровернь вверх`, 2 - двойной клик`, 3 - F3`, 4 - F4`, 0 - по умолчанию)`r`nctrl_mbutton=4`r`n# То же с зажатым Ctrl`r`nhotkey=1`r`n# Использование сочетания Ctrl+`` для активации и скрытия окна программы`r`nf1=https://skif-off.github.io/doublecmd.github.io/doc/ru/index.html`r`n# url или файл с абсолютным или относительным путем`, открывающийся по F1`r`nf4menu_ini=`r`n# Путь к F4Menu.ini`, абсолютный или относительный (без начального бэкслэша!), dc_loader.ini, CP1251
 
IniRead cmd, dc_loader.ini, Main, cmd
IniRead cmd_shift, dc_loader.ini, Main, cmd_shift
IniRead f1, dc_loader.ini, Main, f1
IniRead pad, dc_loader.ini, Main, pad
IniRead freze_time, dc_loader.ini, Main, freze_time
IniRead dclick_time, dc_loader.ini, Main, dclick_time
IniRead dclick_delta, dc_loader.ini, Main, dclick_delta
IniRead mbutton, dc_loader.ini, Main, mbutton
IniRead ctrl_mbutton, dc_loader.ini, Main, ctrl_mbutton
IniRead hotkey, dc_loader.ini, Main, hotkey
IniRead f4menu_ini, dc_loader.ini, Main, f4menu_ini
 
Loop %0%
{
    p:=%A_Index%
    If (p~="^[a-zA-Z]:")
        p="%p%"
    par.=" " p
}
Sleep 50
If GetKeyState("Shift","P")
    par:=((cmd_shift="") ? "" : " " cmd_shift) . par
else If cmd
    par:=((cmd="") ? "" : " " cmd) . par
Run % "doublecmd.exe" par
WinWait ahk_class DClass ahk_exe doublecmd.exe, , 5
WinActivate
 
If f4menu_ini && FileExist(f4menu_ini)
{
    FileRead f4, % f4menu_ini
    f4:=StrReplace(f4,A_ScriptDir,"%COMMANDER_PATH%",r1)
    f4:=StrReplace(f4,RegExReplace(A_ScriptDir,"[a-zA-Z]:\K.*"),"%COMMANDER_DRIVE%",r2)
    If r1 || r2
    {
        FileMove % f4menu_ini, % RegExReplace(f4menu_ini,"\.ini$") "_" A_Now ".ini"
        FileAppend % f4, % f4menu_ini, CP1251
    }
}
 
Loop
{
    Sleep 50
    If WinActive("ahk_class DClass ahk_exe doublecmd.exe")
        hwnd:=WinActive("A")
    WinGet list, List, ahk_class DClass ahk_exe doublecmd.exe
    win_n:=0
    Loop % list
    {
        id:=list%A_Index%
        WinGet pr_path, ProcessPath, % "ahk_id" id  
        If pr_path contains % A_ScriptDir
            win_n+=1
    }
    If !win_n
        ExitApp
}
 
#If WinActive("ahk_class DClass ahk_exe doublecmd.exe") && !(GetKeyState("Ctrl","P") || GetKeyState("Shift","P") || GetKeyState("Alt","P")) && OnDC()
$LButton::
MouseGetPos x_start, y_start
If (A_PriorHotkey="$LButton") && (A_TimeSincePriorHotkey<dclick_time) && (Sqrt((x_start-x_old)**2+(y_start-y_old)**2)<dclick_delta) && pad && prep
{
    Sleep 25
    Send {LButton up}
    Sleep 50
    MouseClick left, % x_old, % y_old, ,0
    prep:=0
    return
}
If (A_PriorHotkey="~RButton") && (A_TimeSincePriorHotkey<1100) && (Sqrt((x_start-x_old)**2+(y_start-y_old)**2)<dclick_delta) && pad  
    {
        Sleep 100
        Send ^{NumpadSub}
        Sleep 100
        MouseMove % x_old, % y_old, 0
        Send {AppsKey}
        return
    }
MouseGetPos x_old, y_old
Send {LButton down}
If freze_time && !pad
{
    BlockInput MouseMove
    m:=freze_time
    While GetKeyState("LButton","P") && (m>0)
    {
        m-=5
        Sleep 5
    }
    BlockInput MouseMoveOff
}
KeyWait LButton
Send {LButton up}
prep:=1
return
 
#If !WinActive("ahk_class DClass ahk_exe doublecmd.exe") && hotkey
^vkC0::    WinActivate ahk_id %hwnd%
 
#If WinActive("ahk_class DClass ahk_exe doublecmd.exe") && hotkey
^vkC0::WinMinimize A
 
#If WinActive("ahk_class DClass ahk_exe doublecmd.exe") && f1
F1::Run % f1
 
#If WinActive("ahk_class DClass ahk_exe doublecmd.exe")
+RButton::
KeyWait RButton, T1
KeyWait Shift, T1
Send ^{NumpadSub}{LButton}
Sleep 100
Send ^{vk43}
path:=Clipboard
SplitPath path, file
Run %comspec% /c ""Explorer" "/select"`, "%path%"", ,Hide
WinWaitActive ahk_exe explorer.exe, , 2
id:=WinActive()
Send {AppsKey}
WinWait ahk_class #32768 ahk_exe explorer.exe, , 1
WinGetPos x, y
MouseMove % x+10, % y+20, 0
ToolTip % file,% x+10, % y-20
WinWaitClose
WinClose ahk_id %id%
ToolTip
return
 
#If WinActive("ahk_class DClass ahk_exe doublecmd.exe") && OnDC()
~RButton::
MouseGetPos x_old, y_old
return
 
XButton1::Send !{Left}
XButton2::Send !{Right}
 
MButton::
KeyWait MButton
If mbutton=1
    Send {Bs}
If mbutton=2
    Send {LButton 2}
If mbutton=3
    Send {LButton}{F3}
If mbutton=4
    Send {LButton}{F4}
If !mbutton
    Send {MButton}
return
 
^MButton::
KeyWait MButton
KeyWait Ctrl
If ctrl_mbutton=1
    Send {Bs}
If ctrl_mbutton=2
    Send {LButton 2}
If ctrl_mbutton=3
    Send {LButton}{F3}
If ctrl_mbutton=4
    Send {LButton}{F4}
If !ctrl_mbutton
    Send ^{MButton}
return
 
#IfWinActive
 
OnDC()
{
    global
    MouseGetPos , , , win
    return If win=hwnd
}
 
 

Всего записей: 1212 | Зарегистр. 10-12-2007 | Отправлено: 13:27 12-02-2018 | Исправлено: Krot66, 09:19 14-02-2018
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Double Commander


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru