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 

Single Post  Topic: Копирование имён только выделенных файлов и каталогов 
Author Message
LonerD



PostPosted: Tue Apr 28, 2015 01:40    Post subject: Reply with quote

.
.
Полон форум программистов, скриптописателей и околототальных людей, и за три года никто не подсказал о командах Тоталу и прямом считывании информации...

В общем, вот такое манюнькое решение получилось на AHK.

Code:
; Copy to clipboard list of only selected files and directories.
; Копирование в буфер обмена списка только выделенных файлов и каталогов.
#NoEnv
#NoTrayIcon
#MaxMem 1024
#SingleInstance force
SetBatchLines, -1

If not ( WinExist("ahk_class TTOTAL_CMD") || WinActive("ahk_class TTOTAL_CMD") )
  ExitApp

Clipboard := ""

WinGet, hw_TTOTAL_CMD, ID, A
ControlGetFocus, aControl, % "ahk_id " hw_TTOTAL_CMD
SendMessage, 0x190, , , % aControl, % "ahk_id " hw_TTOTAL_CMD
CountItems = %ErrorLevel%
SendMessage, 0x187, 0, , % aControl, % "ahk_id " hw_TTOTAL_CMD
UpLevel = %ErrorLevel%

if (( CountItems > 1 ) || ( ( CountItems = 1 ) && ( UpLevel != 1 )))
  SendMessage, 0x433, 2021,,, % "ahk_id " hw_TTOTAL_CMD

ExitApp


Уже перед публикацией заметил одно ограничение - скрипт неполноценно работает, если в корне диска выделен один файл, и при этом в настройках Тотала отключена строка перехода на уровень выше .. (а также в виртуальных каталогах). Если пойму как побороть - дополню решение (точнее я уже знаю решение через WM_COPYDATA, но оно неэлегантное и раздует скрипт раза в три).

Также подозреваю, что есть решение через LB_GETSELITEMS без задействования буфера обмена, но пока не знаю как это сделать.
_________________
Windows 11 | TC DreamLair eternal pre-α
View user's profile Send private message Visit poster's website ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group