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 

Выделение файлов через один
Goto page Previous  1, 2, 3 ... , 10, 11, 12  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Sat Jul 02, 2016 14:24    Post subject: Reply with quote

LonerD wrote:
Это в ТС9 появилось?

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

Апать не вижу смысла, ибо сложность с LB_* улавливаю (да и режимом эскизов не пользуюсь).
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1168
Location: Донецк

Post (Separately) Posted: Thu Aug 04, 2016 01:01    Post subject: Reply with quote

Благодаря новым возможностям ТС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
}
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


_________________
Win11 x64 Eng | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Thu Aug 04, 2016 14:29    Post subject: Reply with quote

LonerD
LB_SETSEL не пробовал? Попробовал ради любопытства - у меня не срабатывает.
Back to top
View user's profile Send private message
Totas



Joined: 05 Sep 2015
Posts: 24

Post (Separately) Posted: Sun Feb 05, 2017 10:33    Post subject: Выделение файлов через один Reply with quote

Как выделить папки через один, но не скриптом, а плагином (каким)? Скрипт не знаю куда вписывать.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Sun Feb 05, 2017 10:47    Post subject: Reply with quote

Totas
А плагин вы знаете, куда вписывать? Не говоря про то, что не бывает плагинов для этой задачи, полностью заменяющих скрипты. И надобности в них нет никакой. А для тех, кто не знает, что куда вписывать, есть материалы форума, включая эту тему и памятку по скриптам в "Автоматизации". См. здесь. Опять та же история?
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Sun Feb 05, 2017 16:07    Post subject: Reply with quote

Totas
Поэкспериментируйте с плагином Misc. В диалоге поиска (Alt+F7) на вкладке "Плагины" нужно задать параметры
Плагин: misc
Свойство: odd
Операция: =
Значение: Да
и на вкладке "Шаблоны поиска" сохранить шаблон (назовём его odd).
После этого из расширенного русского меню или из кнопки вызывать команду для выделения группы папок (cm_SelectFolders - Выделить группу: только папки) и выбирать созданный ранее шаблон >odd. В девятой версии тотала можно просто завести кнопку с командой selectfilesd >odd.
Back to top
View user's profile Send private message
jackal-85



Joined: 18 Dec 2017
Posts: 3

Post (Separately) Posted: Tue Dec 19, 2017 10:57    Post subject: Reply with quote

LonerD wrote:
Благодаря новым возможностям ТС9 удалось значительно сократить и оптимизировать скрипт.

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



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Dec 19, 2017 11:16    Post subject: Reply with quote

jackal-85 wrote:
что я делаю не так?
1. Начинаете предложения с маленькой буквы.
2. Не так сохраняете. Это ahk, а не vbs (себе потом тоже делал упрощённый под ТС9). Запускается через свой интерпретатор.
3. Не читаете внимательно шапку скрипта и памятку раздела.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
jackal-85



Joined: 18 Dec 2017
Posts: 3

Post (Separately) Posted: Tue Dec 19, 2017 15:49    Post subject: Reply with quote

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

ну и на этом спасибо!
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Tue Dec 19, 2017 15:56    Post subject: Reply with quote

jackal-85
В первую очередь можно (и нужно!) соблюдать правила форума, за нарушение которых — замечание.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Dec 19, 2017 16:18    Post subject: Reply with quote

jackal-85
А ничего лишнего (в отличии от запрошенного) и не написано. Во-первых, приведены ссылки, по которым есть возможность определиться с выбором. Во-вторых, тут де-факто принято сперва читать прикреплённую памятку без задавания лишних вопросов. В-третьих, как-то вот обходимся мы без установки, поэтому предлагать подобное выглядело бы с моей стороны нелепицей. Под запуском через интерпретатор понимается не что иное, как подстановка пути перед путём к скрипту.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
jackal-85



Joined: 18 Dec 2017
Posts: 3

Post (Separately) Posted: Tue Dec 19, 2017 16:40    Post subject: Reply with quote

Flasher wrote:
Во-первых, приведены ссылки, по которым есть возможность определиться с выбором.
спасибо, не обратил внимание на скрипт vbs...
Flasher wrote:
Во-вторых, тут де-факто принято сперва читать прикреплённую памятку без задавания лишних вопросов.
не нашёл в теме, поэтому и спросил...
Flasher wrote:
В-третьих, как-то вот обходимся мы без установки, поэтому предлагать подобное выглядело бы с моей стороны нелепицей. Под запуском через интерпретатор понимается не что иное, как подстановка пути перед путём к скрипту.
я не знаю как можно обойтись, и поэтому тоже спросил...
вобщем спасибо!
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Dec 19, 2017 16:55    Post subject: Reply with quote

jackal-85 wrote:
не нашёл в теме
В теме прикреплений быть не может. Написано о текущем разделе.
jackal-85 wrote:
не знаю как можно обойтись
Элементарно. Распаковывается верхний .zip под голубой кнопкой и используется подстановочный и соответствующий битности системы интерпретатор (AutoHotkeyU(32/64).exe).

P.S.: П. 1 тут игнорировать чревато. Советую уважать участников обсуждения, тут не чат.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Tue Dec 19, 2017 16:59    Post subject: Reply with quote

jackal-85
Ещё раз — и последний: либо вы оформляете свои посты нормально, либо, скорее всего, будете дальше решать свои проблемы в другом месте.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
HEXFIX



Joined: 25 Jun 2010
Posts: 173
Location: Калининград

Post (Separately) Posted: Sat May 02, 2020 16:54    Post subject: Reply with quote

Flasher, а возможно скрипт доработать? По факту мелочь, но было бы идеально.
Сейчас объясню. Если я задаю в параметрах "выделить только папки" и применяю скрипт, но при этом курсор не стоит именно на папке, то выделения папок не происходит. С файлами работает где бы курсор ни стоял. Можно ли сделать то же самое и для папок?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... , 10, 11, 12  Next
Page 11 of 12

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group