Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
Какую версию Process Monitor Вы используете? »
https://i.imgur.com/zVlBOCv.png
Не могу найти »
https://i.imgur.com/GNqPMcc.png
и т.д.
На х64 системах изменения вносятся в [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Winlogon] »
Если Ваше приложение — x86, то, разумеется, на x64 системах оно будет обращаться из-за редиректа к x86-версии каталога %SystemRoot%\System32 — %SystemRoot%\SysWOW64, исполняя оттуда и интерпретатор команд, и консольный редактор реестра, что и приведёт к редиректу при обращении к реестру, и, соответственно, попытка записи в HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon реально будет производиться в раздел HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Winlogon (как Вы и указали).
и на операции с реестром. »
RegCreateKey достаточно?
lSVl, я тупо не помню, потому как через WinAPI очень давно с реестром работал. Я бы ещё добавил как минимум RegSetValue:
https://i.imgur.com/Izkcxq3.png
Iska, подскажите пожалуйста как прописать одной строкой
@Echo Off
for /f "tokens=2 delims==" %%a in ('wmic path Win32_networkadapter where ^"NetConnectionStatus^=2^" get NetConnectionID /value')
netsh interface ip set address name="%%a" source=static address=192.168.0.1 mask=255.255.255.0 gateway=192.168.0.1
Exit
RunProgram="hidcon:cmd /c ..."
lSVl, тут должно быть более двух строк (к тому же, первая строка — с for /f — неполная), потому как нет никакой гарантии, что wmic.exe что-либо вернёт (например, нет ни одного экземпляра класса Win32_NetworkAdapter, который был бы «Connected»), а может оказаться и несколько (при этом в %%a попадёт значение из последнего экземпляра класса).
lSVl
Ваш код работать не будет. Я бы запускал в две и более строки, через батник, но, если вам так хочется/нужно одной строкой, я бы сделал так:
FOR /F "Tokens=2 Delims==" %%I IN ('WMIC path Win32_NetworkAdapter where ^"NetConnectionStatus^=2 and PNPDeviceID like ^'PCI\\VEN%%^'^" get NetConnectionID /value 2^>nul') DO IF "%%I"=="%%I" CALL NETSH interface ip set address name="%%I" source=static addr=192.168.0.1 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=0 >nul
Но данный метод плох тем, что, если у вас несколько подключенных сетей (NetConnectionStatus=2), то для всех, по очереди, применятся ваши настройки, не проверял (нет возможности), но по идеи так. Еще, если NetConnection не будет получен, то NETSH не отработает. Так же тут применятся фильтрация по PCI устройствам.
boss911, а что даёт:
IF "%%I"=="%%I" »
?
не проверял (нет возможности), но по идеи так. »
Так.
а что даёт »
если NetConnection не будет получен, то NETSH не отработает. »
Припустим, что по какой-то причине имя подключения (значение NetConnectionID) не будет получено, соответственно переменная %%I не создастся, условие проверит наличие переменной через сравнение, нет переменной, то и NETSH (применение настроек) незачем выполнять. Просто IF DEFINED %%I в данном случае не работает.
boss911, спасибо, ясно. Я обычно делаю в несколько шагов:
for /f "..." %%i in (`wmic.exe ...`) do set sSomeVar=%%~i
if defined sSomeVar ( ... ) else ( ... )
в несколько шагов »
Напишите пожалуйста полный код
lSVl »
В качестве рабочего примера:
@Echo off
SET IP_ADDR=192.168.0.1
SET MASK=255.255.255.0
SET GATEWAY=192.168.0.1
CHCP 1251 1>nul
REM SET "NetConnectionName=По желанию можно указать свое имя подключения и убрать 'REM' в начале этой строки"
CHCP 866 1>nul
IF NOT DEFINED NetConnectionName (
FOR /F "Tokens=2 Delims==" %%I IN ('WMIC path Win32_NetworkAdapter where ^"NetConnectionStatus^=2 and PNPDeviceID like ^'PCI\\VEN%%^'^" get NetConnectionID /value 2^>nul') DO SET "NetConnectionName=%%~I"
)
IF DEFINED NetConnectionName (
NETSH interface ip set address name="%NetConnectionName%" source=static addr=%IP_ADDR% mask=%MASK% gateway=%GATEWAY% gwmetric=0 >nul
) ELSE (
ECHO Network connection not found
PAUSE >nul
)
EXIT
Если у вас несколько подключенных/активных сетей (редкий случай), то настройки сработают только для того подключения, имя которого будет получено последним, а получает оно не по списку имен, так же имейте это ввиду.
habib2302
15-10-2019, 19:02
Доброе время суток. Помогите решить проблему. Антивируса нет, а встроенный отключен
https://c.radikal.ru/c05/1910/1f/0de448b039a5.png (https://a.radikal.ru/a14/1910/4c/c1a39acb9436.jpg)
https://drive.google.com/file/d/1yOh7LvPcG19CZ2q1aID15-dtAMxRMdOB/view?usp=sharing
habib2302, по твоим ссылкам, и выше в том числе
Этот файл нельзя открыть, так как он нарушает Условия использования.
Подробную информацию можно найти в Справочном центре Google Диска.
ARMAGIDON
26-12-2020, 13:57
Привет, а может она не весь архив распаковывать? Например в архиве две папки 86, 64 от зависимости разрядности выбирает нужную папку например в бат это бы выглядело так для папки Tor Browser_86 а папку Tor Browser_64 не трогаем
"%ProgramFiles%\7-Zip\7z.exe" x "%userprofile%\Desktop\firefox.exe" "Tor Browser_86\*" -o"D:\Tor Browser_86"
pause
ARMAGIDON,
В приложенной справке разделы: "Переменные модуля" и "Секции файла конфигурации".
tr011_tmn
26-01-2021, 09:07
Доброго времени суток коллеги.
Подскажите пожалуйста есть ли возможность исполняемому sfx передать внешний параметр SetEnvironment?
Что бы по умолчанию в файле конфигурации он был указан, но если требуется то при запуске sfx.exe его можно было переназначить.
Подскажите пожалуйста есть ли возможность исполняемому sfx передать внешний параметр SetEnvironment? »
Да.
name_sfx.exe -SetEnvironment="fVer=5.5.5"
Нашёл тут на гите 1.7.1.3901. Собрал, вроде работает. »
Прошло два года с этого поста, а насчёт работы этих модулей только один пост на следующей странице. И в шапке ссылки на них до сих пор нет.
Есть какие-то нюансы/проблемы при использование этих модулей?
https://github.com/OlegScherbakov/7zSFX
Я так понял автор переехал на GitHub. Жаль, что теперь сюда не заходит.
На данный момент есть версия 7zsd_171_3901.7z (https://github.com/OlegScherbakov/7zSFX/tree/master/Archive) от 21.05.2018. Обновите шапку, пожалуйста.
https://olegscherbakov.github.io/7zSFX/ - онлайн справка на англ, только похоже более устаревшая чем русская.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.