View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Dec 06, 2017 13:01 Post subject: |
|
|
ingerard
Надо-то зачем? + На вопрос ответ будет? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
ingerard
Joined: 04 Dec 2016 Posts: 128
|
(Separately) Posted: Wed Dec 06, 2017 13:10 Post subject: |
|
|
Quote: | Если бы было нужно, то зачем ограничивать поведение? |
После пару раз использования скрипта, вдруг позже понял что это тоже необходимо. Если вдруг надо быстро выделить один схожий файл под курсором на другой панели, и чтоб лишить себя лишних нажатий для выделения. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Dec 06, 2017 13:18 Post subject: |
|
|
ingerard
Ну, вот и славно. Так что по совпадению относительности? Можно хотя бы один пример такой потребности? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
ingerard
Joined: 04 Dec 2016 Posts: 128
|
(Separately) Posted: Wed Dec 06, 2017 13:46 Post subject: |
|
|
Ну потребность в этом же скрипте есть? А это почти тоже самое, но имена файлов не из буфера берутся, а из выделенных файлов на панели. Если в режиме Branch находит много схожих файлов, то их тоже отмечать, даже если пути разные. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Dec 06, 2017 14:14 Post subject: |
|
|
Это не то же самое. Там речь идёт о восстановлении выделения из буфера. А тут о выделении в обеих панелях. Ладно, внёс правку. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
ingerard
Joined: 04 Dec 2016 Posts: 128
|
(Separately) Posted: Wed Dec 06, 2017 15:33 Post subject: |
|
|
Flasher
Пока что все отлично работает, спасибо. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Dec 06, 2017 16:34 Post subject: |
|
|
ingerard
Пож-та. В 7 строке S на T заменил. Для результатов поиска нужно смотреть на получатель, а не источник. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Mon Sep 24, 2018 04:52 Post subject: |
|
|
Спустя три года обновил свой вариант на AHK.
Ссылка на полную версию скрипта.
Данная версия скрипта работает только под TC 9.0 и более новыми версиями. Благодаря новым возможностям Тотала удалось значительно сократить и оптимизировать код.
Скрипт
Code: | ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Total Commander DreamLair ;
; Script: Selection the same name files and/or dirs in the panels ;
; Скрипт: Виділення в панелях однойменних файлів та/або каталогів ;
; Скрипт: Выделение в панелях одноимённых файлов и/или каталогов ;
; Version: 2.0 (2018.09.24) ;
; Required: Total Commander 9.0+ ;
; Tested on: Total Commander 9.21a ;
; Author: LonerD DreamLair.net ;
; Made in Donetsk People's Republic ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Parameter: ;
; 1) Selection mode: ;
; 1 - all (default); 2 - only files; 3 - only dirs ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Параметр: ;
; 1) Метод виділення: ;
; 1 - все (за замовч.); 2 - тільки файли; 3 - тільки каталоги ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Параметр: ;
; 1) Метод выделения: ;
; 1 - всё (по умолчанию); 2 - только файлы; 3 - только каталоги ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#NoEnv
#NoTrayIcon
#MaxMem 1024
#SingleInstance force
SetBatchLines, -1
Mode = %1%
if Mode not in 1,2,3
Mode = 1 ; файли і каталоги
ClipSaved := ClipboardAll
Clipboard := ""
if not ( WinExist("ahk_class TTOTAL_CMD") || WinActive("ahk_class TTOTAL_CMD") )
ExitApp
WinGet, hw_TTOTAL_CMD, ID, A
global hw_TTOTAL_CMD
DllCall("LockWindowUpdate", "uint", hw_TTOTAL_CMD)
TCPanelA := SendMessageTC(1074, 1000, 0, A)
hw_TCPathA := SendMessageTC(1074, 8+TCPanelA, 0, A)
ControlGetText, PathA,, % "ahk_id " hw_TCPathA
PathA := StrReplace(PathA, "\*.*", "\")
hw_TCPathB := SendMessageTC(1074, 11-TCPanelA, 0, A)
ControlGetText, PathB,, % "ahk_id " hw_TCPathB
PathB := StrReplace(PathB, "\*.*", "\")
SendMessage, 1075, 524,,, % "ahk_id " hw_TTOTAL_CMD
SendMessage, 1075, 330 . Mode,,, % "ahk_id " hw_TTOTAL_CMD
SelItems := SendMessageTC(1074, 1004+TCPanelA, 0, A)
if ( SelItems = 0 )
Goto, Exit
SendMessage, 1075, 2017,,, % "ahk_id " hw_TTOTAL_CMD
FilesA := Clipboard
SendMessage, 1075, 2018,,, % "ahk_id " hw_TTOTAL_CMD
FileListA := Clipboard
SendMessage, 1075, 4006,,, % "ahk_id " hw_TTOTAL_CMD
SendMessage, 1075, 524,,, % "ahk_id " hw_TTOTAL_CMD
SendMessage, 1075, 330 . Mode,,, % "ahk_id " hw_TTOTAL_CMD
if ( PathA = PathB )
Goto, Exit
SelItems := SendMessageTC(1074, 1007-TCPanelA, 0, A)
if ( SelItems = 0 )
Goto, NoSelection
SendMessage, 1075, 2017,,, % "ahk_id " hw_TTOTAL_CMD
FilesB := Clipboard
SendMessage, 1075, 2018,,, % "ahk_id " hw_TTOTAL_CMD
FileListB := Clipboard
FileListSel := ""
Loop, Parse, FilesA, `n, `r
{
CurrentFile := A_LoopField
Loop, Parse, FilesB, `n, `r
{
if ( CurrentFile = A_LoopField )
FileListSel := FileListSel A_LoopField "`r`n"
}
}
if ( FileListSel = "" )
Goto, NoSelection
FileListSelA := ""
FileListSelB := ""
FileListSelX := ""
FileListX := FileListB
Gosub, LoopFilelist
FileListSelB := FileListSelX
FileListX := FileListA
Gosub, LoopFilelist
FileListSelA := FileListSelX
StringReplace, FileListSelA, FileListSelA, % PathA, , All
StringReplace, FileListSelB, FileListSelB, % PathB, , All
Clipboard := FileListSelB
SendMessage, 1075, 2033,,, % "ahk_id " hw_TTOTAL_CMD
SendMessage, 1075, 400 . TCPanelA,,, % "ahk_id " hw_TTOTAL_CMD
Clipboard := FileListSelA
SendMessage, 1075, 2033,,, % "ahk_id " hw_TTOTAL_CMD
Exit:
Clipboard := ClipSaved
ClipSaved := ""
FileListA := ""
FileListB := ""
FileforSel := ""
FileListSelA := ""
FileListSelB := ""
FileListSelX := ""
DllCall("LockWindowUpdate", "uint", 0)
ExitApp
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
LoopFilelist:
Loop, Parse, FileListSel, `n, `r
{
FileforSel := A_LoopField
FileLen := StrLen(FileforSel)
if ( FileLen > 0 )
{
Loop, Parse, FileListX, `n, `r
{
StringLen := StrLen(A_LoopField)
SlashSymbol := SubStr(A_LoopField, StringLen - FileLen, 1)
StringRight, CurrentFile, A_LoopField, FileLen
if (( StringLen - FileLen > 1 ) && ( SlashSymbol = "\" ) && ( CurrentFile = FileforSel ))
FileListSelX := FileListSelX A_LoopField "`r`n"
}
}
}
Return
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
NoSelection:
SendMessage, 1075, 524,,, % "ahk_id " hw_TTOTAL_CMD
SendMessage, 1075, 4006,,, % "ahk_id " hw_TTOTAL_CMD
SendMessage, 1075, 524,,, % "ahk_id " hw_TTOTAL_CMD
Goto, Exit
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Total Commander Send Message function ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
SendMessageTC(TCMsg, wParam, lParam, aControl)
{
SendMessage, % TCMsg, % wParam, % lParam, % aControl, % "ahk_id " hw_TTOTAL_CMD
return ErrorLevel
}
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
|
CaptainFlint:
Спрятал длинный код. _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
|
|
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
|