Нет, дефолтные возможности ListBox, работает и в 8.52а, а в ТС9 только удобнее получить дескриптор списка.LonerD писал(а):Это в ТС9 появилось?
Апать не вижу смысла, ибо сложность с LB_* улавливаю (да и режимом эскизов не пользуюсь).
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Код: Выделить всё
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Total Commander DreamLair
; Script: Zebra file selection
; Скрипт: Выделение файлов зеброй
; Script version: 4.0 (2016.08.04)
; Required: Total Commander 9.0+
; Script author: LonerD
; Made in Donetsk People's Republic
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Parameters:
; 1) Selection mode:
; 1 - all; 2 - only files; 3 - only dirs
; 2) Selection position:
; 1 - begin from first file; 2 - from second etc
; 0 - begin from file under cursor
; 3) Selection range:
; 2 - each second file, 3 - each third file etc
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Параметры:
; 1) Метод выделения:
; 1 - всё; 2 - только файлы; 3 - только каталоги
; 2) Позиция выделения:
; с какого файла начинать (с первого, второго и т.д...)
; 0 - начинать с файла под курсором
; 3) Порядок выделения:
; 2 - каждый второй файл, 3 - каждый третий и т.д....
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#NoEnv
#NoTrayIcon
#MaxMem 1024
#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
If not ( WinExist("ahk_class TTOTAL_CMD") || WinActive("ahk_class TTOTAL_CMD") )
ExitApp
WinGet, hw_TTOTAL_CMD, ID, ahk_class TTOTAL_CMD
global hw_TTOTAL_CMD
ClipSaved := ClipboardAll
Clipboard := ""
DllCall("LockWindowUpdate", "uint", hw_TTOTAL_CMD)
SendMessage, 1075, 524,,, % "ahk_id " hw_TTOTAL_CMD
SendMessage, 1075, 330 . Mode,,, % "ahk_id " hw_TTOTAL_CMD
TCAPanel := SendMessageTC(1074, 1000, 0, A)
hw_TCAPanel := SendMessageTC(1074, 8+TCAPanel, 0, A)
SelItems := SendMessageTC(1074, 1004+TCAPanel, 0, A)
if ( SelItems = 0 )
Goto, Exit
SendMessage, 1075, 2018,,, % "ahk_id " hw_TTOTAL_CMD
FileList := Clipboard
Clipboard := ""
ControlGetText, TCAPanelPath,, % "ahk_id " hw_TCAPanel
TCAPanelPath := StrReplace(TCAPanelPath, "\*.*", "\")
FileList := StrReplace(FileList, TCAPanelPath)
IsUpDir := SendMessageTC(1074, 1008+TCAPanel, 0, A)
if ( First = 0 )
{
FirstFile := SendMessageTC(1074, 1010+TCAPanel, 0, A)
FirstSelFile := SendMessageTC(1074, 1006+TCAPanel, 0, A)
if (( Mode = 3 ) & ( FirstSelFile >= FirstFile ))
{
SendMessage, 1075, 524,,, % "ahk_id " hw_TTOTAL_CMD
Goto, Exit
}
else if ((( FirstSelFile = 0 ) & ( IsUpDir = 1)) || (( Mode = 2 ) & ( FirstSelFile < FirstFile )))
FirstSelFile := 1
}
else
FirstSelFile := First
FileListSel := ""
Loop, Parse, FileList, `n, `r
{
if ( Mod(A_Index - FirstSelFile + IsUpDir,Range) = 1 )
FileListSel := FileListSel "`r`n" A_LoopField
}
Clipboard := FileListSel
SendMessage, 1075, 2033,,, % "ahk_id " hw_TTOTAL_CMD
Exit:
Clipboard := ClipSaved
ClipSaved := ""
FileList := ""
FileListSel := ""
DllCall("LockWindowUpdate", "uint", 0)
ExitApp
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SendMessageTC(TCMsg, wParam, lParam, aControl)
{
SendMessage, % TCMsg, % wParam, % lParam, % aControl, % "ahk_id " hw_TTOTAL_CMD
return ErrorLevel
}
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
подскажите, пожалуйста, как использовать Ваш скрипт?LonerD писал(а):Благодаря новым возможностям ТС9 удалось значительно сократить и оптимизировать скрипт.
1. Начинаете предложения с маленькой буквы.jackal-85 писал(а):что я делаю не так?
а Можно Было Просто Написать "установи AutoHotkey", А Не Писать Столько Всего Лишнего...Flasher писал(а):1. Начинаете предложения с маленькой буквы.jackal-85 писал(а):что я делаю не так?
2. Не так сохраняете. Это ahk, а не vbs (себе потом тоже делал упрощённый под ТС9). Запускается через свой интерпретатор.
3. Не читаете внимательно шапку скрипта и памятку раздела.
спасибо, не обратил внимание на скрипт vbs...Flasher писал(а):Во-первых, приведены ссылки, по которым есть возможность определиться с выбором.
не нашёл в теме, поэтому и спросил...Flasher писал(а):Во-вторых, тут де-факто принято сперва читать прикреплённую памятку без задавания лишних вопросов.
я не знаю как можно обойтись, и поэтому тоже спросил...Flasher писал(а):В-третьих, как-то вот обходимся мы без установки, поэтому предлагать подобное выглядело бы с моей стороны нелепицей. Под запуском через интерпретатор понимается не что иное, как подстановка пути перед путём к скрипту.
В теме прикреплений быть не может. Написано о текущем разделе.jackal-85 писал(а):не нашёл в теме
Элементарно. Распаковывается верхний .zip под голубой кнопкой и используется подстановочный и соответствующий битности системы интерпретатор (AutoHotkeyU(32/64).exe).jackal-85 писал(а):не знаю как можно обойтись