;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Script: SelectionZebra.ahk
; Build: 1.4 (2013.06.11-2015.04.20)
; Author: LonerD
; OfSite: http://dreamlair.net
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Выделение объектов в панели зеброю.
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Parameters:
; 1) Selection mode:
; 1 - all; 2 - only files; 3 - only dirs
; 2) Selection position:
; 1 - begin from 1st file; 2 - from 2nd; 10 - from 10th
; 3) Selection range:
; 2 - each 2nd file, 3 - each third file etc
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Параметры:
; 1) Метод выделения:
; 1 - всё; 2 - только файлы; 3 - только каталоги
; 2) Позиция выделения:
; с какого файла начать выделение (с первого, второго, ... десятого, ... ит.д.)
; 3) Порядок выделения:
; 2 - каждый второй файл, 3 - каждый третий и т.д...
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#NoEnv
#NoTrayIcon
#SingleInstance force
SetBatchLines, -1
Mode = %1%
First = %2%
Range = %3%
If 0 < 3
Range = 2
If 0 < 2
First = 1
If Mode not in 1,2,3
Mode = 1
WinGet, TCHWND, ID, ahk_class TTOTAL_CMD
DllCall("LockWindowUpdate", "uint", TCHWND)
ClipSaved := ClipboardAll
Clipboard := ""
SendMessage, 0x433, 2029,,, ahk_class TTOTAL_CMD
Path := Clipboard . "\"
SendMessage, 0x433, 524,,, ahk_class TTOTAL_CMD
SendMessage, 0x433, 330 . Mode,,, ahk_class TTOTAL_CMD
SendMessage, 0x433, 2021,,, ahk_class TTOTAL_CMD
Sleep, 100
FileList := Clipboard
Sleep, 100
Loop, Parse, FileList, `n, `r
{
Strings := A_Index
if ( Strings > 1 )
Break
}
if ( Strings = 1 )
{
SendMessage, 0x433, 3321,,, ahk_class TTOTAL_CMD
SendMessage, 0x433, 2021,,, ahk_class TTOTAL_CMD
SendMessage, 0x433, 524,,, ahk_class TTOTAL_CMD
Sleep, 100
FileList2 := Clipboard
Sleep, 100
Loop, Parse, FileList2, `n, `r
{
Strings2 := A_Index
if ( Strings2 > 1 )
Break
}
if ( Strings2 > 1 )
{
Loop, Parse, FileList2, `n, `r
{
if ( FileList = A_LoopField )
Goto, Exit
}
}
}
SendMessage, 0x433, 524,,, ahk_class TTOTAL_CMD
StringReplace, Path, Path, `\`\, `\, All
StringReplace, FileList, FileList, % Path, , All
FileListSel := ""
Loop, Parse, FileList, `n, `r
{
if ( Mod(A_Index - First + 1,Range) = 1 )
FileListSel := FileListSel "`r`n" A_LoopField
}
Clipboard := FileListSel
SendMessage, 0x433, 2033,,, ahk_class TTOTAL_CMD
Exit:
Clipboard := ClipSaved
ClipSaved := ""
FileList := ""
FileListSel := ""
DllCall("LockWindowUpdate", "uint", 0)
Exit
|