Страница 81 из 88

Добавлено: Пн сен 06, 2021 13:58
aLLigator
imig73 ладно, чуть детальнее..
Файл work.abc представляет собой TrueCrypt контейнер (abc это просто расширение файла), по двойному клику на который происходит запуск этого скрипта:

Код: Выделить всё

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
т.е. тут важно как имя файла так и то что в первый раз идет монтирование, а при повторном "запуске" демонтирование.
Хочу еще чуть автоматизировать и запускать (монтировать/демонтировать) с панели инструментов.

Добавлено: Пн сен 06, 2021 14:24
imig73
aLLigator
К сожалению я не знаю что делать с TrueCrypt контейнером и расширением abc.

Добавлено: Пн сен 06, 2021 15:03
sa
aLLigator
Кнопка с командой cm_ContextMenuInternalCursor не подойдёт?

Добавлено: Пн сен 06, 2021 16:01
aLLigator
sa спасибо за предложение, но если переходить в каталог к файлу и выбирать его под курсор то проще сразу сделать двойной клик чем переводить потом с него курсор на панель инструментов, а затем обратно на файл и выпадающее меню.

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

Добавлено: Пн сен 06, 2021 18:35
aLLigator
Решил таки свою задачу:

Код: Выделить всё

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\TrueCrypt_rm.vbs" "d:\work.edc"

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


0
-1

Добавлено: Вт ноя 16, 2021 16:45
krmit
Помогите, пожалуйста, доработать кнопочку http://forum.wincmd.ru/viewpost.php?p=66683, чтобы ярлык переименовывался именем папки, в которой лежит исходный файл.
ЗЫ: если кнопкой такое не получится, можно на скрипт заменить.

Кнопка показать/скрыть папки

Добавлено: Пн дек 13, 2021 18:52
7995
Подскажите, плз, код для кнопки скрыть/показать папки. Нашел решение только скрывать

Код: Выделить всё

TOTALCMD#BAR#DATA
cd *.*|*\
WCMICONS.DLL,24
Files only
0
-1
Но это неудобно, т.к. когда скрыл, то экскейп не возвращает значение на все обратно.

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

И еще может быть есть какой-то обходной путь отключить отображение папок всегда сверху, и если я сортирую по дате, то они отображались как и файлы по дате списком, а не над файлами?

Добавлено: Пн дек 13, 2021 21:55
sa
7995
Здесь приводилась кнопка с использованием утилиты TCFS2. Для её работы потребуется создать в TC пользовательскую команду em_cd с командой cd и параметрами %A%Z.
Как вариант, в кнопке вместо tcm(312) можно записать tem(`em_cd *.*`).

Добавлено: Вт дек 14, 2021 02:22
Monarch-LFV
7995
У меня реализовано через скрипт VBS:

Код: Выделить всё

'======================================================================
' Сделать скрытыми/нескрытыми выделенные объекты (без рекурсии)

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

' Пример параметров вызова из 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). Выделенные объекты скрывает или делает нескрытыми.

Добавлено: Вт дек 14, 2021 02:55
7995
Monarch-LFV
Спасибо, но моя задача в оп-посте о другом.

Добавлено: Вт дек 14, 2021 03:50
Monarch-LFV
7995
Да, сорри, дейстивтельно, неправильно понял задачу. Ваша кнопка ставит фильтр, а отменить его соответственно можно по комбинации Ctrl+F10 (вместо приведенного вами Esc). Или другой кнопкой с командой cm_SrcAllFiles.
Или можно, например, назначить кнопке Esc эту команду. Тогда Esc будет работать и в основном своем предназначении отмены (у меня работает, протестил), а также будет сбрасывать фильтр. Для этого нужно в wincmd.ini в секции [Shortcuts] прописать:

Код: Выделить всё

ESC=cm_SrcAllFiles

Добавлено: Вт дек 14, 2021 06:16
Avada
7995
Для запросов кнопок есть специальная тема, куда во избежание захламления подфорума "Общие вопросы" всё это и переносится.
У клавиши Esc свои задачи, а режим "Все файлы", как было сказано, включается по Ctrl+F10. Переназначать команду cm_SrcAllFiles на Esc я бы не советовал.
Смешанной сортировки файлов с папками в TC нет, о чём говорилось сто раз, учитесь пользоваться поиском по форуму. Соблюдайте правила.

Добавлено: Вт дек 14, 2021 13:46
sa
7995 писал(а):обходной путь отключить отображение папок всегда сверху
Можно отсортировать по дате файлы/папки на стороне (в Excel, к примеру) или вручную и, сохранив их имена (у папок должен быть \ в конце) в текстовый файл, загрузить в панель TC (можно с конкретным пользовательским набором колонок) командой LOADLIST. Только не пытайтесь сортировать колонки в панели заново – папки снова окажутся сверху!
Если такие "Результаты поиска:" устраивают, то дело за скриптом для сортировки по дате и вызова команды LOADLIST.

Добавлено: Вт дек 14, 2021 14:10
Avada
sa
Как справедливо было замечено, результат такой вставки проживёт ровно до первого же изменения сортировки и выводится только в виде виртуальной папки с результатами поиска (со всеми её ограничениями). Я эту "фичу" заметил сразу же с появлением LOADLIST, но расцениваю её просто как забавный побочный эффект применения указанной команды — и не более того. Сильно сомневаюсь, что для нормальной работы в TC такое может кому-то реально пригодиться.