Показать полную графическую версию : .: Файлы конфигурации 7z SFX. Помощь и советы :.
не сработало, иконку не нашла винда »
Вы скопипастили мой пример и не вникли в суть написанного:мы сразу увидим в свойствах ярлыка отсутствие "правильного" абсолютного пути »В моем коде, умышленно, для примера, введена ошибка, которая для наглядности выделена цветом - первая буква в переменной набрана кириллицей. Исправьте эту ошибку и все заработает.
ruslan910
04-09-2012, 11:54
о чудо, все заработало. Спасибо.
specialist
07-09-2012, 12:56
gora,
возникла идея отвязаться от имени reg файла находящегося в одном каталоге с установщиком, реализовать следующий смысл:
for %%f in (*.reg) do regedit /s "%%f"
в конфиге. реально? накидал что-то типа:
RunProgram="hidcon:cmd /c for %%f in (%%S\\*.reg) do regedit /s \"%%S\\%%f\""
но не отрабатывает. можно ли довести это до ума (естесственно чтобы при этом он понимал и пути/названия файлов с пробелами)?
не отрабатывает. можно ли довести это до ума (естесственно чтобы при этом он понимал и пути/названия файлов с пробелами)? »
Можно:
RunProgram="hidcon:cmd /c For %f In (\"%%S\\*.reg\") Do RegEdit /s \"%f\""
Мне необходимо запустить vbs скрипт (только на Windows 7 и выше), после долгих мучений у меня получилось но уж очень долго выполняется данная команда может её можно как то модернизировать?
RunProgram="hidcon:cmd /c Ver | Find \"6.1\" >Nul && wscript.exe \"%%T\\runQ.vbs"
Мне необходимо запустить vbs скрипт (только на Windows 7 и выше) »
В Вашем скрипте этого сделать не получится, поскольку Windows 8 имеет номер 6.2.
Проверьте отдельно запуск runQ.vbs. В настоящий момент данных для ответа на вопрос о скорости выполнения недостаточно.
P.S. Попробуйте так: RunProgram="hidcon:cmd /c Ver | Find \"6.\" >Nul && wscript.exe \"%%T\\runQ.vbs\""
specialist
23-09-2012, 02:37
поправьте меня если ошибаюсь... а нельзя-ли сделать просто запуск этого скрипта, а уже в нем самом реализовать проверку системы:
если удовлетворяет выполнять такие-то действия, если нет - на выход
nibble74
21-10-2012, 06:53
Как экспортировать путь к SFX архиву в реестр, во время его запуска ? Пробую варианты с переменной %%S, но чёт никак.
К примеру:
hidcon:cmd /c Reg Add \"HKLM\\SOFTWARE\\имя\" /ve /t REG_SZ /d \"%%S\\Имя.exe\" /f"
Имя.exe - этот файл расположен рядом с SFX архивом. Вот и нужно путь к этому файлу экспортировать в реестр. Просто, при распаковке из другого инсталлятора, путь к самому SFX и этому файлу может быть разным.
Дайте пример. Как реализовать этот вариант?
чёт никак »
Может быть ОС х64? Или путь %%S содержит спец символы? Это нужно указывать в вопросе.Дайте пример. Как реализовать этот вариант? »
RunProgram="hidcon:%%P:Reg Add \"HKLM\\SOFTWARE\\имя\" /ve /t REG_SZ /d \"%%S\\имя.exe\" /f"
nibble74
21-10-2012, 14:22
Может быть ОС х64? Или путь %%S содержит спец символы? »
Нет нет, ОС х86 и никаких спец символов. Пробовал без %%S прописывал полный путь, но не экспортируется.
Таких комманд у меня несколько, причём первая экспортируется, а все последующие (их всего 6 штук) нет.
Смотрю в процессах висит Sfx.exe, Reg.exe и не закрываются, причём временная папка Sfx архива из темпа тоже не удаляется.
Приходится вручную процессы убивать. Иногда Sfx процессов одновременно бывает 2 и даже 3 :)
Пробовал с cmd /c и без, как в вашем коде выше.
Префикс waitall тоже не помогает.
Походу, вроде бы, не успевает все комманды экспорта в реестр обработать и зависает.
nibble74
21-10-2012, 14:47
Только что понял в чём дело. В конце каждой строки у меня прописано "%%1". Убрал этот параметр и %%S заработало.
Как же так ? Этот параметр очень нужен, без него никак.
Походу, кнопочку надо пересмотреть.
Quattroman
05-11-2012, 22:27
Парни, подскажите плиииииз!!!!
Сегодня появилась задача, передать файл, открыв, просмотрев и закрыв который, самостоятельно бы самоуничтожился без следов.
В программирования я полный нуб......но пришлось разбираться ))
Собрал в корне диска С следующие файлы:
1. Архив 7zip, который состоит из
а) собственно файла
б) батника 1.CMD следующего содержания
:START
If Exist "%~1" Del /F/Q "%~1"
If Exist "%~1" GoTo START
Del /F/Q 1.cmd
2. Конфиг *.TXT следующего содержания
;!@Install@!UTF-8!
InstallPath="%TEMP%"
RunProgram="rundll32 shimgvw.dll,ImageView_Fullscreen %TEMP%\\1.jpg"
Delete="%TEMP%\\1.jpg"
RunProgram="hidcon:nowait:%TEMP%\\1.cmd \"%%S\%%M\""
GUIMode="2"
;!@InstallEnd@!
3. 7zsd_LZMA.sfx
Далее в командной строке пишем
С:\>copy /b 7zsd_LZMA.sfx + 1.txt + 1.7z 1.exe
В результате имеем SFX-архив, кликаем по нему 2 раза, открывается файл, закрываем и сам SFX-архив удаляется.
Бинго!!!! Все получилось.
Теперь вопрос: можно ли как-то к этому SFX-архиву добавить пароль??
Т.е. кликаем по сформировавшемуся SFX-архиву, вводим пароль, далее как обычно (открывается файл, просматриваем, закрываем и все удаляется)??
Спасибо!
specialist
05-11-2012, 23:13
Quattroman, бинго! это жесть конечно. изобретать колесо вместо внимательного изучения возможностей sfx...
ознакомьтесь http://7zsfx.info/ru/parameters.html#SelfDelete
один вопрос только - как вы собираетесь бороться с копиями файла которые удаляться не будут (если кто-то их сделает)?
существуют модули в которые можно вбить пароль и его потребуется знать чтобы запустить и распаковать такой sfx (вроде бы даже общедоступны)
но модули, которые нельзя распаковать и которые под паролем, который однако не нужно указывать при запуске файла доступны только его величеству автору модифицированных модулей и лицам особо приближенным к нему (заслужившим)
Quattroman
06-11-2012, 08:21
specialist, лана вам.....жесть.....
вам, конечно, легко рассуждать, продвинутый )))
времени изучать не было вообще ((
Т.е. Конфиг *.TXT надо по другому записать??
Далее также через командную строку?
Помогите написать файл этот конфиг.....
То, что я в первом пункте написАл - CMD уже не нужен будет?
О каких копиях идет речь? Т.е. даже при использовании SelfDelete всё равно где-то копия будет валяться?
PS В голове полная каша........Последний раз чем то подобным занимался в школе. когда на паскале табличку умножения писАл. Это все мои познании в информатике и программировании ((
PPS Сорри, за большое количество вопросов....
Quattroman, все значительно проще.
1 cmd файла не надо, его заменит параметр SelfDelete="1"
2 Заботится об удалении распакованного не надо, если не указывать параметр InstallPath. При этом распаковка происходит во временную папку модуля и по завершении его работы она удаляется со всем содержимым автоматически.
3 Для добавления ввода пароля достаточно:
- при создании 7z архива указать этот пароль
- использовать модуль с поддержкой шифрования 1.6 develop (сборка 2478) 10.05.12 и выше. Обратите внимание, что ветки 1.4 и 1.5 шифрования не поддерживают.
Конфиг получится таким:
;!@Install@!UTF-8!
RunProgram="rundll32 shimgvw.dll,ImageView_Fullscreen 1.jpg"
SelfDelete="1"
GUIMode="2"
;!@InstallEnd@!
Если в окне ввода пароля нужно что-то написать для пользователя, то см. параметры в справке: PasswordTitle, PasswordText
доступны только его величеству автору модифицированных модулей »
2 specialist, как-то неспортивны мне кажутся Ваши выпады в сторону автора. Он с Вас денег не брал, он Вам сделал модули, а что Вы сделали для него? :dont-know Ничего! Тогда не надо наезжать.
Quattroman
06-11-2012, 11:40
gora, спасибо за отклик!!
Скачал модуль по этой ссылке
1.6.0.2488-develop доступен ( http://7zsfx.info/files/7zsd_160_2488.7z)
Запаковал картинку в 7Zip с паролем
Собрал все в одной папке:
1. Архив с картинкой 1.7z
2. 1.txt следующего содержания
;!@Install@!UTF-8!
RunProgram="rundll32 shimgvw.dll,ImageView_Fullscreen 1.jpg"
SelfDelete="1"
GUIMode="2"
;!@InstallEnd@!
3. 7zsd_LZMA.sfx
Далее в командной строке набрал copy /b 7zsd_LZMA.sfx + 1.txt + 1.7z 1.exe
После чего в папке появился SFX-архив 1.exe
Кликаем по нему, просит ввести пароль, несколько секунд и архив удаляется. Все вроде как надо...и пароль, и удаляется, но картинки нет ((
Мне надо, что бы после ввода пароля, картинка открывалась в стандартном мелкософтовском просмотрщике, а после закрытия картинки - архив удалялся..
Что делаю не так??
Quattroman, Ваша строка rundll32 shimgvw.dll,ImageView_Fullscreen 1.jpg у меня не захотела работать ни в каком виде, ни из конфига, ни из батника расположенного рядом с картинкой. Причины этого мне неизвестны, но, т.к., Вы написали что у Вас она работает, то я и не стал ее трогать. У себя тестировал проще, в конфиге была строкаRunProgram="1.jpg" и файл запускался программой с которой у меня в системе ассоциировано данное расширение, а именно IrfanView. Возможно нечто похожее происходит и у Вас.
Вы не указываете свою систему, у меня все написано в профиле. Конфиги и куски кода вставляйте в тегах [CODE] - значок # на панели "Быстрого ответа".
Quattroman
06-11-2012, 12:12
Профиль подправил
С этим кодом
rundll32 shimgvw.dll,ImageView_Fullscreen 1.jpg
баловался вчера на ХРюше...
Попробовал сделать с таким конфиг-файлом...
;!@Install@!UTF-8!
RunProgram="1.jpg"
SelfDelete="1"
GUIMode="2"
;!@InstallEnd@!
Теперь по двойному клику по SFX-архиву предлагается ввести пароль, вводим, далее открывается просмотрщик.....через секунду архив удаляется и.....
http://i037.radikal.ru/1211/96/9be3b9734646.jpg
Т.е. как я понял, архив с картинкой удалился раньше, чем она (картинка) успела открыться ((
Quattroman, попробуйте:
1 Добавить префикс, может поможет:
RunProgram="waitall:1.jpg"
2 Добавить вторую строку после запуска картинки:
RunProgram="hidcon:cmd /c Ping -n 4 localhost"
В последнем случае временная папка модуля может не удалиться.
Quattroman
06-11-2012, 12:37
Первый вариант не проканал
В случае, если добавить
RunProgram="hidcon:cmd /c Ping -n 4 localhost"
все работает!!
Открывается картинка из временной папки .......\Local\Temp\7Zipsfx.000, далее видно как удаляется сам архив, далее удаляется папка 7Zipsfx.000. Закрываем картинку и никаких следов!
СПАСИБО!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC