View previous topic :: View next topic |
Author |
Message |
gora
Joined: 30 Dec 2004 Posts: 442 Location: Иваново
|
(Separately) Posted: Thu Nov 16, 2006 09:22 Post subject: Кнопка для создания SFX-архива |
|
|
Подскажите как создать кнопку для создания 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-модуля может не лежать в этой же папке, но имеет постоянное место на диске и путь к нему можно прописать руками.
Буду рад любой помощи т.к. сам в "скриптописательстве" ноль. |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
|
Back to top |
|
|
DeathStalker
Joined: 01 Sep 2006 Posts: 331 Location: Санкт-Петербург
|
(Separately) Posted: Thu Nov 16, 2006 11:30 Post subject: |
|
|
Maximus
LocKtaR-o-DarK wrote: |
Code: | TOTALCMD#BAR#DATA
rundll32 powrprof.dll,SetSuspendState
shell32.dll,211
Спящий режим |
|
|
|
Back to top |
|
|
Billy_Bons
Joined: 03 Mar 2006 Posts: 5
|
(Separately) Posted: Thu Nov 16, 2006 23:51 Post subject: |
|
|
Кнопки для выключения, перезагрузки компьютера и выхода из системы с диалогом подтверждения действия (используется утилита NirCmd 1.85):
Code: | TOTALCMD#BAR#DATA
nircmd qboxcom "Выключить компьютер?" "Завершение работы" exitwin poweroff
shell32.dll,215
Выключить компьютер
%COMMANDER_PATH%\tools\nircmd\
-1
|
Code: | TOTALCMD#BAR#DATA
nircmd qboxcom "Перезагрузить компьютер?" "Завершение работы" exitwin reboot
shell32.dll,217
Перезагрузить компьютер
%COMMANDER_PATH%\tools\nircmd\
-1
|
Code: | TOTALCMD#BAR#DATA
nircmd qboxcom "Выйти из системы?" "Завершение работы" exitwin logoff
shell32.dll,211
Выход из системы
%COMMANDER_PATH%\tools\nircmd\
-1
|
Вместо %COMMANDER_PATH%\tools\nircmd\ необходимо, разумеется, указать свой путь до nircmd.exe |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
|
Back to top |
|
|
DeathStalker
Joined: 01 Sep 2006 Posts: 331 Location: Санкт-Петербург
|
(Separately) Posted: Fri Nov 17, 2006 12:25 Post subject: |
|
|
Maximus
Команда одна и таже для обоих режимов.
НО чтобы компьютер погружался в ждущий режим надо снять галочку Разрешить использование спящего режима (Панель управления->Электропитание->Спящий режим) |
|
Back to top |
|
|
LocKtaR-o-DarK
Joined: 12 Aug 2005 Posts: 349 Location: Москва
|
(Separately) Posted: Sat Nov 18, 2006 02:45 Post subject: |
|
|
Компиляция скрипта INNO
гуем
Code: | TOTALCMD#BAR#DATA
"путь\до\Inno Setup\Compil32"
/cc %N
путь\до\Inno Setup\ISCmplr.dll
Компиляция скрипта INNO |
комстрокой
Code: | TOTALCMD#BAR#DATA
"путь\до\Inno Setup\ISCC"
%N
путь\до\Inno Setup\ISCmplr.dll
Компиляция скрипта INNO
1
-1 |
_________________ |
|
Back to top |
|
|
DeathStalker
Joined: 01 Sep 2006 Posts: 331 Location: Санкт-Петербург
|
(Separately) Posted: Sat Nov 18, 2006 14:28 Post subject: |
|
|
Maximus
Поизучал вчера мат. часть и придумал как можно компьютер погружать в спящий и ждущий режимы. Надо создать для спящего режима батник с таким содержимым:
Code: | powercfg /h on
rundll32 powrprof.dll,SetSuspendState |
А для ждущего с таким:
Code: | powercfg /h off
rundll32 powrprof.dll,SetSuspendState |
|
|
Back to top |
|
|
Zorroz
Joined: 16 Dec 2004 Posts: 308 Location: Россия, Иркутская обл., г. Ангарск
|
(Separately) Posted: Tue Nov 21, 2006 15:31 Post subject: |
|
|
Кнопку для сжатия базы данных эскизов. Все три опции в настройках включены. _________________ Когда ангелу обрезают крылья, он учится летать на метле... |
|
Back to top |
|
|
DeathStalker
Joined: 01 Sep 2006 Posts: 331 Location: Санкт-Петербург
|
(Separately) Posted: Wed Nov 22, 2006 10:31 Post subject: |
|
|
Zorroz
Могу предложить скрипт (Script Helper), у него есть минус он работает с интерфейсом ТС, принцип действия - открывает диалог Настройка:эскизы и нажимает кнопку Запуск. Скрипт писался под TC7pb1, работоспособность для других версий ТС не проверял.
Code: | 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 |
_________________ Гугль - это Матрица, чем меньше его спрашивать, тем слабее будут машины во время Великой Битвы
TC10.00b6 x86 Windows 10 x64 (Windows 7 x64) |
|
Back to top |
|
|
Zorroz
Joined: 16 Dec 2004 Posts: 308 Location: Россия, Иркутская обл., г. Ангарск
|
(Separately) Posted: Wed Nov 22, 2006 12:34 Post subject: |
|
|
DeathStalker
Никогда такого глюка еще не видел! Скрипт не хочет работать, появляется окно настроек и начинает дико мегать, потом ТС вылетает.
Если попробовать запустить еще раз, то открывается 2 копии system.ini в блокноте. _________________ Когда ангелу обрезают крылья, он учится летать на метле... |
|
Back to top |
|
|
DeathStalker
Joined: 01 Sep 2006 Posts: 331 Location: Санкт-Петербург
|
(Separately) Posted: Wed Nov 22, 2006 12:54 Post subject: |
|
|
Попробуй этот вариант, TCS.Pause=1000 - время задержки в миллисекундах
Code: | 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 |
_________________ Гугль - это Матрица, чем меньше его спрашивать, тем слабее будут машины во время Великой Битвы
TC10.00b6 x86 Windows 10 x64 (Windows 7 x64) |
|
Back to top |
|
|
Zorroz
Joined: 16 Dec 2004 Posts: 308 Location: Россия, Иркутская обл., г. Ангарск
|
(Separately) Posted: Wed Nov 22, 2006 15:03 Post subject: |
|
|
DeathStalker
По первому скрипту. Что то пытается сделать, но потом говорит что не удалось открыть tcthumbs.frl и предлагает с помощью чего открыть его.
Второй скрипт выдает тоже самое.
Но самое странное вот что. Если удалить какие-нибудь рисунки(база эскизов изменилась) то появляются ошибки. Если ничего не удалять, то вроде скрипт выполняется. _________________ Когда ангелу обрезают крылья, он учится летать на метле... |
|
Back to top |
|
|
DeathStalker
Joined: 01 Sep 2006 Posts: 331 Location: Санкт-Петербург
|
(Separately) Posted: Thu Nov 23, 2006 17:54 Post subject: |
|
|
Zorroz
В данном скрипте устанавливаюся три опции:
1 Удалить эскизы для отсутствующих файлов
2 Удалить эскизы для извлечённых CD-дисков
3 Удалить эскизы для недоступных дисков (напр., сетевых или USB)
и запускается сжатие базы эскизов.
Код для кнопки
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Scripts\Thumb.vbs 100
WScript.exe,3
Сжатие базы эскизов
%COMMANDER_PATH%\Scripts\
-1 |
Код скрипта
Code: | 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 если возникнут и с ним проблемы, то пиши в личные сообщения. _________________ Гугль - это Матрица, чем меньше его спрашивать, тем слабее будут машины во время Великой Битвы
TC10.00b6 x86 Windows 10 x64 (Windows 7 x64) |
|
Back to top |
|
|
Volniy
Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Fri Nov 24, 2006 01:29 Post subject: |
|
|
2 DeathStalker
Не нужно повторять код TCS.Pause= T, тем более в цикле. Это же не метод, а свойство. Менять его значение нужно только в случае переопределения задержки выполнения команд (задержка уже реализована внутри хелпера). Короче, достаточно одного вызова вначале скрипта, там где уже задано T. |
|
Back to top |
|
|
|