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 ... , 80, 81, 82  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
aLLigator



Joined: 01 Dec 2011
Posts: 166
Location: из тех ворот, что и весь народ...

Post (Separately) Posted: Mon Sep 06, 2021 14:58    Post subject: Reply with quote

imig73 ладно, чуть детальнее..
Файл work.abc представляет собой TrueCrypt контейнер (abc это просто расширение файла), по двойному клику на который происходит запуск этого скрипта:
Code:
Dim strDriveLetter

Dim strPath2App

If WScript.Arguments.Count = 1 Then
   strContainerFile = WScript.Arguments.Item(0)
   
   With WScript.CreateObject("Scripting.FileSystemObject")
      If .FileExists(strContainerFile) Then
         strPath2TrueCrypt = .BuildPath(WScript.CreateObject("Shell.Application").NameSpace("shell:ProgramFiles").self.Path, "TrueCrypt\TrueCrypt.exe")
         
         If .FileExists(strPath2TrueCrypt) Then
            strDriveLetter = Left(.GetBaseName(strContainerFile), 1) & ":"
            
            If Not .DriveExists(strDriveLetter) Then
               WScript.CreateObject("WScript.Shell").Run """" & strPath2TrueCrypt & """ /letter " & strDriveLetter & " /volume """ & strContainerFile & """ /p *** /history n /cache y /mountoption removable /quit", 1, True

               strPath2App = .BuildPath(strDriveLetter, "autorun.vbs")
               
               If .FileExists(strPath2App) Then
                  WScript.CreateObject("WScript.Shell").Run """" & strPath2App & """", 1, False
               Else
                  WScript.Quit 4
               End If

            Else
               WScript.CreateObject("WScript.Shell").Run """" & strPath2TrueCrypt & """ /dismount " & strDriveLetter & " /quit", 1, False
            End If

         Else
            WScript.Echo "Can't find [" & strPath2TrueCrypt & "]."
            WScript.Quit 3
         End If
      Else
         WScript.Echo "Can't find TrueCrypt container file [" & strContainerFile & "]."
         WScript.Quit 2
      End If
   End With
Else
   WScript.Echo "Usage: " & WScript.ScriptName & " <TrueCrypt container file>"
   WScript.Quit 1
End If

WScript.Quit 0

т.е. тут важно как имя файла так и то что в первый раз идет монтирование, а при повторном "запуске" демонтирование.
Хочу еще чуть автоматизировать и запускать (монтировать/демонтировать) с панели инструментов.
Back to top
View user's profile Send private message
imig73



Joined: 18 Jun 2013
Posts: 279
Location: г. Иркутск

Post (Separately) Posted: Mon Sep 06, 2021 15:24    Post subject: Reply with quote

aLLigator
К сожалению я не знаю что делать с TrueCrypt контейнером и расширением abc.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Mon Sep 06, 2021 16:03    Post subject: Reply with quote

aLLigator
Кнопка с командой cm_ContextMenuInternalCursor не подойдёт?
Back to top
View user's profile Send private message
aLLigator



Joined: 01 Dec 2011
Posts: 166
Location: из тех ворот, что и весь народ...

Post (Separately) Posted: Mon Sep 06, 2021 17:01    Post subject: Reply with quote

sa спасибо за предложение, но если переходить в каталог к файлу и выбирать его под курсор то проще сразу сделать двойной клик чем переводить потом с него курсор на панель инструментов, а затем обратно на файл и выпадающее меню.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Mon Sep 06, 2021 17:16    Post subject: Reply with quote

aLLigator wrote:
а затем обратно на файл и выпадающее меню
Эту часть можно было бы и автоматизировать.
Только теперь понял, что файл не надо держать под курсором, скорее наоборот.
Можно, конечно, предварительно выполнить пользовательскую команду (на основе cd) для перехода к нужному файлу, затем программный аналог для ENTER, а в конце вернуться обратно...
Что-то наподобие такой сцепки команд: em_cd_work_abc,cm_Return,cm_GotoPreviousDir .


Last edited by sa on Mon Sep 06, 2021 22:54; edited 1 time in total
Back to top
View user's profile Send private message
aLLigator



Joined: 01 Dec 2011
Posts: 166
Location: из тех ворот, что и весь народ...

Post (Separately) Posted: Mon Sep 06, 2021 19:35    Post subject: Reply with quote

Решил таки свою задачу:
Code:
TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\TrueCrypt_rm.vbs" "d:\work.edc"

C:\Program Files (x86)\TotalCommander\ICO\sys\edc.ico


0
-1
Back to top
View user's profile Send private message
krmit



Joined: 09 Nov 2019
Posts: 7

Post (Separately) Posted: Tue Nov 16, 2021 17:45    Post subject: Reply with quote

Помогите, пожалуйста, доработать кнопочку http://forum.wincmd.ru/viewpost.php?p=66683, чтобы ярлык переименовывался именем папки, в которой лежит исходный файл.
ЗЫ: если кнопкой такое не получится, можно на скрипт заменить.
Back to top
View user's profile Send private message
7995



Joined: 13 Dec 2021
Posts: 2

Post (Separately) Posted: Mon Dec 13, 2021 19:52    Post subject: Кнопка показать/скрыть папки Reply with quote

Подскажите, плз, код для кнопки скрыть/показать папки. Нашел решение только скрывать
Code:
TOTALCMD#BAR#DATA
cd *.*|*\
WCMICONS.DLL,24
Files only
0
-1

Но это неудобно, т.к. когда скрыл, то экскейп не возвращает значение на все обратно.

Можно ли как-то сделать переключателем?

И еще может быть есть какой-то обходной путь отключить отображение папок всегда сверху, и если я сортирую по дате, то они отображались как и файлы по дате списком, а не над файлами?
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Mon Dec 13, 2021 22:55    Post subject: Reply with quote

7995
Здесь приводилась кнопка с использованием утилиты TCFS2. Для её работы потребуется создать в TC пользовательскую команду em_cd с командой cd и параметрами %A%Z.
Как вариант, в кнопке вместо tcm(312) можно записать tem(`em_cd *.*`).
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Tue Dec 14, 2021 03:22    Post subject: Reply with quote

7995
У меня реализовано через скрипт VBS:
Code:
'======================================================================
' Сделать скрытыми/нескрытыми выделенные объекты (без рекурсии)

' Параметры:
' {файл-список}

' Пример параметров вызова из TC:
' %WL
'======================================================================
Option Explicit
on error resume next
Dim FSO, FileList, List, F, object1
Set FSO  = CreateObject("Scripting.FileSystemObject")
FileList = WScript.Arguments(0)
List     = Split(FSO.OpenTextFile(FileList,,,-1).ReadAll, vbNewLine)
For Each F In List
  If F <> "" Then
    set object1 = CreateObject("Scripting.FileSystemObject").Getfile(F) ' Имя файла
   set object1 = CreateObject("Scripting.FileSystemObject").GetFolder(F) ' Имя папки
   If object1.attributes and 2 Then
          object1.attributes = object1.attributes - 2
      Else
           object1.attributes = object1.attributes + 2
      End If

  End If
Next

Set FSO = Nothing
Wscript.Quit 0

Создать файл с содержимым, назвать его *.VBS, повесить на кнопку с параметром %WL (или сделать команду по горячей клавише, как я себе сделал по Ctrl+Shift+h). Выделенные объекты скрывает или делает нескрытыми.
Back to top
View user's profile Send private message
7995



Joined: 13 Dec 2021
Posts: 2

Post (Separately) Posted: Tue Dec 14, 2021 03:55    Post subject: Reply with quote

Monarch-LFV
Спасибо, но моя задача в оп-посте о другом.
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Tue Dec 14, 2021 04:50    Post subject: Reply with quote

7995
Да, сорри, дейстивтельно, неправильно понял задачу. Ваша кнопка ставит фильтр, а отменить его соответственно можно по комбинации Ctrl+F10 (вместо приведенного вами Esc). Или другой кнопкой с командой cm_SrcAllFiles.
Или можно, например, назначить кнопке Esc эту команду. Тогда Esc будет работать и в основном своем предназначении отмены (у меня работает, протестил), а также будет сбрасывать фильтр. Для этого нужно в wincmd.ini в секции [Shortcuts] прописать:
Code:
ESC=cm_SrcAllFiles
Back to top
View user's profile Send private message
Avada



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

Post (Separately) Posted: Tue Dec 14, 2021 07:16    Post subject: Reply with quote

7995
Для запросов кнопок есть специальная тема, куда во избежание захламления подфорума "Общие вопросы" всё это и переносится.
У клавиши Esc свои задачи, а режим "Все файлы", как было сказано, включается по Ctrl+F10. Переназначать команду cm_SrcAllFiles на Esc я бы не советовал.
Смешанной сортировки файлов с папками в TC нет, о чём говорилось сто раз, учитесь пользоваться поиском по форуму. Соблюдайте правила.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Tue Dec 14, 2021 14:46    Post subject: Reply with quote

7995 wrote:
обходной путь отключить отображение папок всегда сверху

Можно отсортировать по дате файлы/папки на стороне (в Excel, к примеру) или вручную и, сохранив их имена (у папок должен быть \ в конце) в текстовый файл, загрузить в панель TC (можно с конкретным пользовательским набором колонок) командой LOADLIST. Только не пытайтесь сортировать колонки в панели заново – папки снова окажутся сверху!
Если такие "Результаты поиска:" устраивают, то дело за скриптом для сортировки по дате и вызова команды LOADLIST.
Back to top
View user's profile Send private message
Avada



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

Post (Separately) Posted: Tue Dec 14, 2021 15:10    Post subject: Reply with quote

sa
Как справедливо было замечено, результат такой вставки проживёт ровно до первого же изменения сортировки и выводится только в виде виртуальной папки с результатами поиска (со всеми её ограничениями). Я эту "фичу" заметил сразу же с появлением LOADLIST, но расцениваю её просто как забавный побочный эффект применения указанной команды — и не более того. Сильно сомневаюсь, что для нормальной работы в TC такое может кому-то реально пригодиться.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
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 ... , 80, 81, 82  Next
Page 81 of 82

 
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