Страница 11 из 46
Кнопка для создания SFX-архива
Добавлено: Чт ноя 16, 2006 08:22
gora
Подскажите как создать кнопку для создания SFX-архива (7zip)?
Исходные данные:
1 В папке, открытой на одной из панелей TC, находятся файлы: конфигурации (например, config.txt), 7z-архив (например, archive.7z) и SFX-модуль (например, 7zSD.sfx).
2 Выделяем два файла config.txt и archive.7z на панели и нажимает кнопку (которая и нужна), а лучше перетаскиваем на нее эти файлы (если это не слишком усложнит задачу).
3 Выполняется "преобразование" известной командой - "copy /b 7zSD.sfx + config.txt + archive.7z archive.exe" и создается SFX-архив archive.exe в этой же папке.
4 Файлы конфигурации и 7z-архива всегда разные (выделяются пользователем).
5 Имя SFX-архива всегда формируется из имени 7z архива заменой расширения с .7z на .exe, и, если такой файл в этой папке уже существует, то новый переписывает старый.
6 Файл SFX-модуля может не лежать в этой же папке, но имеет постоянное место на диске и путь к нему можно прописать руками.
Буду рад любой помощи т.к. сам в "скриптописательстве" ноль.
Добавлено: Чт ноя 16, 2006 10:05
Maximus
А кто может придумать кнопку для перехода в ждущий режим?
shutdown такого не умет...
Добавлено: Чт ноя 16, 2006 10:30
DeathStalker
Maximus
LocKtaR-o-DarK писал(а):
Код: Выделить всё
TOTALCMD#BAR#DATA
rundll32 powrprof.dll,SetSuspendState
shell32.dll,211
Спящий режим
Добавлено: Чт ноя 16, 2006 22:51
Billy_Bons
Кнопки для выключения, перезагрузки компьютера и выхода из системы с диалогом подтверждения действия (используется утилита
NirCmd 1.85):
Код: Выделить всё
TOTALCMD#BAR#DATA
nircmd qboxcom "Выключить компьютер?" "Завершение работы" exitwin poweroff
shell32.dll,215
Выключить компьютер
%COMMANDER_PATH%\tools\nircmd\
-1
Код: Выделить всё
TOTALCMD#BAR#DATA
nircmd qboxcom "Перезагрузить компьютер?" "Завершение работы" exitwin reboot
shell32.dll,217
Перезагрузить компьютер
%COMMANDER_PATH%\tools\nircmd\
-1
Код: Выделить всё
TOTALCMD#BAR#DATA
nircmd qboxcom "Выйти из системы?" "Завершение работы" exitwin logoff
shell32.dll,211
Выход из системы
%COMMANDER_PATH%\tools\nircmd\
-1
Вместо %COMMANDER_PATH%\tools\nircmd\ необходимо, разумеется, указать свой путь до nircmd.exe
Добавлено: Пт ноя 17, 2006 09:56
Maximus
Спящий режим
Просмотрел.
Кстати, спящий от ждущего отличается!
Добавлено: Пт ноя 17, 2006 11:25
DeathStalker
Maximus
Команда одна и таже для обоих режимов.
НО чтобы компьютер погружался в ждущий режим надо снять галочку Разрешить использование спящего режима (Панель управления->Электропитание->Спящий режим)
Добавлено: Сб ноя 18, 2006 01:45
LocKtaR-o-DarK
Компиляция скрипта INNO
гуем
Код: Выделить всё
TOTALCMD#BAR#DATA
"путь\до\Inno Setup\Compil32"
/cc %N
путь\до\Inno Setup\ISCmplr.dll
Компиляция скрипта INNO
комстрокой
Код: Выделить всё
TOTALCMD#BAR#DATA
"путь\до\Inno Setup\ISCC"
%N
путь\до\Inno Setup\ISCmplr.dll
Компиляция скрипта INNO
1
-1
Добавлено: Сб ноя 18, 2006 13:28
DeathStalker
Maximus
Поизучал вчера мат. часть и придумал как можно компьютер погружать в спящий и ждущий режимы. Надо создать для спящего режима батник с таким содержимым:
Код: Выделить всё
powercfg /h on
rundll32 powrprof.dll,SetSuspendState
А для ждущего с таким:
Код: Выделить всё
powercfg /h off
rundll32 powrprof.dll,SetSuspendState
Добавлено: Вт ноя 21, 2006 14:31
Zorroz
Кнопку для сжатия базы данных эскизов. Все три опции в настройках включены.
Добавлено: Ср ноя 22, 2006 09:31
DeathStalker
Zorroz
Могу предложить скрипт (Script Helper), у него есть минус он работает с интерфейсом ТС, принцип действия - открывает диалог
Настройка:эскизы и нажимает кнопку
Запуск. Скрипт писался под TC7pb1, работоспособность для других версий ТС не проверял.
Код: Выделить всё
Dim TCS, T, i, j
Set TCS = CreateObject("TCSCRIPT.Helper")
TCS.SendCommand "cm_ThumbnailsConfig"
TCS.LockTC True
TCS.SendKeystroke "{TAB 22}"
TCS.SendKeystroke "{ENTER}"
TCS.SendKeystroke "{ENTER}"
TCS.SendKeystroke "{ENTER}"
TCS.LockTC False
Set TCS = Nothing
WScript.Quit
Добавлено: Ср ноя 22, 2006 11:34
Zorroz
DeathStalker
Никогда такого глюка еще не видел! Скрипт не хочет работать, появляется окно настроек и начинает дико мегать, потом ТС вылетает.
Если попробовать запустить еще раз, то открывается 2 копии system.ini в блокноте.
Добавлено: Ср ноя 22, 2006 11:54
DeathStalker
Попробуй этот вариант, TCS.Pause=1000 - время задержки в миллисекундах
Код: Выделить всё
Dim TCS, T, i, j
Set TCS = CreateObject("TCSCRIPT.Helper")
TCS.SendCommand "cm_ThumbnailsConfig"
TCS.LockTC True
TCS.Pause=1000
TCS.SendKeystroke "{TAB 22}"
TCS.Pause=1000
TCS.SendKeystroke "{ENTER}"
TCS.Pause=1000
TCS.SendKeystroke "{ENTER}"
TCS.Pause=1000
TCS.SendKeystroke "{ENTER}"
TCS.LockTC False
Set TCS = Nothing
WScript.Quit
Добавлено: Ср ноя 22, 2006 14:03
Zorroz
DeathStalker
По первому скрипту. Что то пытается сделать, но потом говорит что не удалось открыть tcthumbs.frl и предлагает с помощью чего открыть его.
Второй скрипт выдает тоже самое.
Но самое странное вот что. Если удалить какие-нибудь рисунки(база эскизов изменилась) то появляются ошибки. Если ничего не удалять, то вроде скрипт выполняется.

Добавлено: Чт ноя 23, 2006 16:54
DeathStalker
Zorroz
В данном скрипте устанавливаюся три опции:
1 Удалить эскизы для отсутствующих файлов
2 Удалить эскизы для извлечённых CD-дисков
3 Удалить эскизы для недоступных дисков (напр., сетевых или USB)
и запускается сжатие базы эскизов.
Код для кнопки
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Scripts\Thumb.vbs 100
WScript.exe,3
Сжатие базы эскизов
%COMMANDER_PATH%\Scripts\
-1
Код скрипта
Код: Выделить всё
Dim TCS, T, i
Set TCS = CreateObject("TCSCRIPT.Helper")
if WScript.Arguments.Count > 0 then
T = WScript.Arguments(0) 'T задержка равна аргументу заданному в качастве параметра
else
WScript.Quit 'Выход если параметр (задержка) не задана
end if
TCS.SendCommand "cm_ThumbnailsConfig" ' Открытие диалога настроек эскизов
For i=1 to 19 ' Цикл с 19 итерациями
TCS.Pause= T ' Задержка
TCS.SendKeystroke "{TAB}" ' Передает активному окну TC нажатие клавиши Tab, как если бы она были нажаты на клавиатуре.
Next
For i=1 to 3 ' Цикл с 3 итерациями
TCS.Pause= T ' Задержка
TCS.SendKeystroke "{ }" ' Передает активному окну TC нажатие клавиши Пробел, как если бы она были нажаты на клавиатуре.
TCS.SendKeystroke "{TAB}" ' Передает активному окну TC нажатие клавиши Tab, как если бы она были нажаты на клавиатуре.
Next
For i=1 to 3 ' Цикл с 3 итерациями
TCS.Pause= T ' Задержка
TCS.SendKeystroke "{ENTER}" ' Передает активному окну TC нажатие клавиши Enter, как если бы она были нажаты на клавиатуре.
Next
Set TCS = Nothing
WScript.Quit
Добавил комментариев чтобы было понятно как скрипт работает. Задав задержку (в коде кнопки цифра после имени скрипта, указывается в миллисекундах) больше можно посмотреть порядок выполнения действий Тотал Коммандером. Скрипт написан для TC7pb1.
Zorroz если возникнут и с ним проблемы, то пиши в личные сообщения.
Добавлено: Пт ноя 24, 2006 00:29
Volniy
2 DeathStalker
Не нужно повторять код TCS.Pause= T, тем более в цикле. Это же не метод, а свойство. Менять его значение нужно только в случае переопределения задержки выполнения команд (задержка уже реализована внутри хелпера). Короче, достаточно одного вызова вначале скрипта, там где уже задано T.