Выделение файлов через один
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3 ... , 10, 11, 12  Next  :| |:
Total Commander -> Автоматизация Total Commander

#151:  Author: Skif_off PostPosted: Sat Jul 02, 2016 14:24
    —
LonerD wrote:
Это в ТС9 появилось?

Нет, дефолтные возможности ListBox, работает и в 8.52а, а в ТС9 только удобнее получить дескриптор списка.

Апать не вижу смысла, ибо сложность с LB_* улавливаю (да и режимом эскизов не пользуюсь).

#152:  Author: LonerDLocation: Донецк PostPosted: Thu Aug 04, 2016 01:01
    —
Благодаря новым возможностям ТС9 удалось значительно сократить и оптимизировать скрипт.

Code:
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; 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
}
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


#153:  Author: Skif_off PostPosted: Thu Aug 04, 2016 14:29
    —
LonerD
LB_SETSEL не пробовал? Попробовал ради любопытства - у меня не срабатывает.

#154: Выделение файлов через один Author: Totas PostPosted: Sun Feb 05, 2017 10:33
    —
Как выделить папки через один, но не скриптом, а плагином (каким)? Скрипт не знаю куда вписывать.

#155:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Feb 05, 2017 10:47
    —
Totas
А плагин вы знаете, куда вписывать? Не говоря про то, что не бывает плагинов для этой задачи, полностью заменяющих скрипты. И надобности в них нет никакой. А для тех, кто не знает, что куда вписывать, есть материалы форума, включая эту тему и памятку по скриптам в "Автоматизации". См. здесь. Опять та же история?

#156:  Author: sa PostPosted: Sun Feb 05, 2017 16:07
    —
Totas
Поэкспериментируйте с плагином Misc. В диалоге поиска (Alt+F7) на вкладке "Плагины" нужно задать параметры
Плагин: misc
Свойство: odd
Операция: =
Значение: Да
и на вкладке "Шаблоны поиска" сохранить шаблон (назовём его odd).
После этого из расширенного русского меню или из кнопки вызывать команду для выделения группы папок (cm_SelectFolders - Выделить группу: только папки) и выбирать созданный ранее шаблон >odd. В девятой версии тотала можно просто завести кнопку с командой selectfilesd >odd.

#157:  Author: jackal-85 PostPosted: Tue Dec 19, 2017 10:57
    —
LonerD wrote:
Благодаря новым возможностям ТС9 удалось значительно сократить и оптимизировать скрипт.

подскажите, пожалуйста, как использовать Ваш скрипт?
что сделал я:
скопировал код, сохранил в файле формата vbs, закрепил на панели в TC9.01, добавлял различные параметры (%V, %Z, %P, 1 1 2)...
в любых случаях выдаёт ошибку 800А0400.
что я делаю не так?
спасибо большое!

#158:  Author: FlasherLocation: Москва PostPosted: Tue Dec 19, 2017 11:16
    —
jackal-85 wrote:
что я делаю не так?
1. Начинаете предложения с маленькой буквы.
2. Не так сохраняете. Это ahk, а не vbs (себе потом тоже делал упрощённый под ТС9). Запускается через свой интерпретатор.
3. Не читаете внимательно шапку скрипта и памятку раздела.

#159:  Author: jackal-85 PostPosted: Tue Dec 19, 2017 15:49
    —
Flasher wrote:
jackal-85 wrote:
что я делаю не так?
1. Начинаете предложения с маленькой буквы.
2. Не так сохраняете. Это ahk, а не vbs (себе потом тоже делал упрощённый под ТС9). Запускается через свой интерпретатор.
3. Не читаете внимательно шапку скрипта и памятку раздела.
а Можно Было Просто Написать "установи AutoHotkey", А Не Писать Столько Всего Лишнего...

ну и на этом спасибо!

#160:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Dec 19, 2017 15:56
    —
jackal-85
В первую очередь можно (и нужно!) соблюдать правила форума, за нарушение которых — замечание.

#161:  Author: FlasherLocation: Москва PostPosted: Tue Dec 19, 2017 16:18
    —
jackal-85
А ничего лишнего (в отличии от запрошенного) и не написано. Во-первых, приведены ссылки, по которым есть возможность определиться с выбором. Во-вторых, тут де-факто принято сперва читать прикреплённую памятку без задавания лишних вопросов. В-третьих, как-то вот обходимся мы без установки, поэтому предлагать подобное выглядело бы с моей стороны нелепицей. Под запуском через интерпретатор понимается не что иное, как подстановка пути перед путём к скрипту.

#162:  Author: jackal-85 PostPosted: Tue Dec 19, 2017 16:40
    —
Flasher wrote:
Во-первых, приведены ссылки, по которым есть возможность определиться с выбором.
спасибо, не обратил внимание на скрипт vbs...
Flasher wrote:
Во-вторых, тут де-факто принято сперва читать прикреплённую памятку без задавания лишних вопросов.
не нашёл в теме, поэтому и спросил...
Flasher wrote:
В-третьих, как-то вот обходимся мы без установки, поэтому предлагать подобное выглядело бы с моей стороны нелепицей. Под запуском через интерпретатор понимается не что иное, как подстановка пути перед путём к скрипту.
я не знаю как можно обойтись, и поэтому тоже спросил...
вобщем спасибо!

#163:  Author: FlasherLocation: Москва PostPosted: Tue Dec 19, 2017 16:55
    —
jackal-85 wrote:
не нашёл в теме
В теме прикреплений быть не может. Написано о текущем разделе.
jackal-85 wrote:
не знаю как можно обойтись
Элементарно. Распаковывается верхний .zip под голубой кнопкой и используется подстановочный и соответствующий битности системы интерпретатор (AutoHotkeyU(32/64).exe).

P.S.: П. 1 тут игнорировать чревато. Советую уважать участников обсуждения, тут не чат.

#164:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Dec 19, 2017 16:59
    —
jackal-85
Ещё раз — и последний: либо вы оформляете свои посты нормально, либо, скорее всего, будете дальше решать свои проблемы в другом месте.

#165:  Author: HEXFIXLocation: Калининград PostPosted: Sat May 02, 2020 16:54
    —
Flasher, а возможно скрипт доработать? По факту мелочь, но было бы идеально.
Сейчас объясню. Если я задаю в параметрах "выделить только папки" и применяю скрипт, но при этом курсор не стоит именно на папке, то выделения папок не происходит. С файлами работает где бы курсор ни стоял. Можно ли сделать то же самое и для папок?



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3 ... , 10, 11, 12  Next  :| |:
Page 11 of 12

Powered by phpBB © 2001, 2005 phpBB Group