Что нового

[Автоматизация] Тихая установка и настройка 7-Zip

Alkantel

Новичок
Сообщения
45
Репутация
1
Добрый день!
Сразу к делу. Сделал скрипт тихой установки и настройки архиватора 7-Zip. Знаю что подобная тема уже существует, но тут немного иной подход к решению вопроса. Установка является полностью тихой, без всплывания разных окон и быстрее, в виду отсутствия необходимости запуска приложения для настройки.
Файл инсталлятора должен называться или "7-Zip_x32.exe" или "7-Zip_x64.msi" , в зависимости от разрядности системы.
Регистрация "*.iso" отключена. Кому надо можно добавить, или сделать опциональной. Язык по-умолчанию "русский". Регистрация расширений и смена языка производится для всех пользователей, который потом будут созданы. Для уже созданных, кроме текущего, пользователей менять язык придется вручную.
Может кому пригодиться.
Код:
#RequireAdmin

$lSysDrive = EnvGet("SYSTEMDRIVE")

Func WriteParam($lRegPath)
   RegWrite($lRegPath & "\.001" , "", "REG_SZ", "7-Zip.001")
   RegWrite($lRegPath & "\.7z" , "", "REG_SZ", "7-Zip.7z")
   RegWrite($lRegPath & "\.arj" , "", "REG_SZ", "7-Zip.arj")
   RegWrite($lRegPath & "\.bz2" , "", "REG_SZ", "7-Zip.bz2")
   RegWrite($lRegPath & "\.bzip2" , "", "REG_SZ", "7-Zip.bzip2")
   RegWrite($lRegPath & "\.cab" , "", "REG_SZ", "7-Zip.cab")
   RegWrite($lRegPath & "\.cpio" , "", "REG_SZ", "7-Zip.cpio")
   RegWrite($lRegPath & "\.deb" , "", "REG_SZ", "7-Zip.deb")
   RegWrite($lRegPath & "\.dmg" , "", "REG_SZ", "7-Zip.dmg")
   RegWrite($lRegPath & "\.fat" , "", "REG_SZ", "7-Zip.fat")
   RegWrite($lRegPath & "\.gz" , "", "REG_SZ", "7-Zip.gz")
   RegWrite($lRegPath & "\.gzip" , "", "REG_SZ", "7-Zip.gzip")
   RegWrite($lRegPath & "\.hfs" , "", "REG_SZ", "7-Zip.hfs")
   RegWrite($lRegPath & "\.lha" , "", "REG_SZ", "7-Zip.lha")
   RegWrite($lRegPath & "\.lzh" , "", "REG_SZ", "7-Zip.lzh")
   RegWrite($lRegPath & "\.lzma" , "", "REG_SZ", "7-Zip.lzma")
   RegWrite($lRegPath & "\.ntfs" , "", "REG_SZ", "7-Zip.ntfs")
   RegWrite($lRegPath & "\.rar" , "", "REG_SZ", "7-Zip.rar")
   RegWrite($lRegPath & "\.rpm" , "", "REG_SZ", "7-Zip.rpm")
   RegWrite($lRegPath & "\.squashfs" , "", "REG_SZ", "7-Zip.squashfs")
   RegWrite($lRegPath & "\.swm" , "", "REG_SZ", "7-Zip.swm")
   RegWrite($lRegPath & "\.tar" , "", "REG_SZ", "7-Zip.tar")
   RegWrite($lRegPath & "\.taz" , "", "REG_SZ", "7-Zip.taz")
   RegWrite($lRegPath & "\.tbz" , "", "REG_SZ", "7-Zip.tbz")
   RegWrite($lRegPath & "\.tbz2" , "", "REG_SZ", "7-Zip.tbz2")
   RegWrite($lRegPath & "\.tgz" , "", "REG_SZ", "7-Zip.tgz")
   RegWrite($lRegPath & "\.txz" , "", "REG_SZ", "7-Zip.txz")
   RegWrite($lRegPath & "\.wim" , "", "REG_SZ", "7-Zip.wim")
   RegWrite($lRegPath & "\.xar" , "", "REG_SZ", "7-Zip.xar")
   RegWrite($lRegPath & "\.xz" , "", "REG_SZ", "7-Zip.xz")
   RegWrite($lRegPath & "\.z" , "", "REG_SZ", "7-Zip.z")
   RegWrite($lRegPath & "\.zip" , "", "REG_SZ", "7-Zip.zip")
   RegWrite($lRegPath & "\7-Zip.001" , "", "REG_SZ", "001 Archive")
   RegWrite($lRegPath & "\7-Zip.001\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,9")
   RegWrite($lRegPath & "\7-Zip.001\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.001\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.001\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.7z" , "", "REG_SZ", "7z Archive")
   RegWrite($lRegPath & "\7-Zip.7z\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,0")
   RegWrite($lRegPath & "\7-Zip.7z\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.7z\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.7z\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.arj" , "", "REG_SZ", "arj Archive")
   RegWrite($lRegPath & "\7-Zip.arj\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,4")
   RegWrite($lRegPath & "\7-Zip.arj\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.arj\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.arj\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.bz2" , "", "REG_SZ", "bz2 Archive")
   RegWrite($lRegPath & "\7-Zip.bz2\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,2")
   RegWrite($lRegPath & "\7-Zip.bz2\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.bz2\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.bz2\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.bzip2" , "", "REG_SZ", "bzip2 Archive")
   RegWrite($lRegPath & "\7-Zip.bzip2\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,2")
   RegWrite($lRegPath & "\7-Zip.bzip2\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.bzip2\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.bzip2\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.cab" , "", "REG_SZ", "cab Archive")
   RegWrite($lRegPath & "\7-Zip.cab\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,7")
   RegWrite($lRegPath & "\7-Zip.cab\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.cab\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.cab\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.cpio" , "", "REG_SZ", "cpio Archive")
   RegWrite($lRegPath & "\7-Zip.cpio\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,12")
   RegWrite($lRegPath & "\7-Zip.cpio\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.cpio\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.cpio\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.deb" , "", "REG_SZ", "deb Archive")
   RegWrite($lRegPath & "\7-Zip.deb\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,11")
   RegWrite($lRegPath & "\7-Zip.deb\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.deb\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.deb\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.dmg" , "", "REG_SZ", "dmg Archive")
   RegWrite($lRegPath & "\7-Zip.dmg\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,17")
   RegWrite($lRegPath & "\7-Zip.dmg\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.dmg\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.dmg\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.fat" , "", "REG_SZ", "fat Archive")
   RegWrite($lRegPath & "\7-Zip.fat\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,21")
   RegWrite($lRegPath & "\7-Zip.fat\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.fat\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.fat\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.gz" , "", "REG_SZ", "gz Archive")
   RegWrite($lRegPath & "\7-Zip.gz\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,14")
   RegWrite($lRegPath & "\7-Zip.gz\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.gz\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.gz\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.gzip" , "", "REG_SZ", "gzip Archive")
   RegWrite($lRegPath & "\7-Zip.gzip\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,14")
   RegWrite($lRegPath & "\7-Zip.gzip\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.gzip\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.gzip\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.hfs" , "", "REG_SZ", "hfs Archive")
   RegWrite($lRegPath & "\7-Zip.hfs\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,18")
   RegWrite($lRegPath & "\7-Zip.hfs\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.hfs\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.hfs\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.lha" , "", "REG_SZ", "lha Archive")
   RegWrite($lRegPath & "\7-Zip.lha\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,6")
   RegWrite($lRegPath & "\7-Zip.lha\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.lha\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.lha\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.lzh" , "", "REG_SZ", "lzh Archive")
   RegWrite($lRegPath & "\7-Zip.lzh\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,6")
   RegWrite($lRegPath & "\7-Zip.lzh\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.lzh\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.lzh\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.lzma" , "", "REG_SZ", "lzma Archive")
   RegWrite($lRegPath & "\7-Zip.lzma\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,16")
   RegWrite($lRegPath & "\7-Zip.lzma\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.lzma\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.lzma\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.ntfs" , "", "REG_SZ", "ntfs Archive")
   RegWrite($lRegPath & "\7-Zip.ntfs\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,22")
   RegWrite($lRegPath & "\7-Zip.ntfs\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.ntfs\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.ntfs\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.rar" , "", "REG_SZ", "rar Archive")
   RegWrite($lRegPath & "\7-Zip.rar\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,3")
   RegWrite($lRegPath & "\7-Zip.rar\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.rar\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.rar\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.rpm" , "", "REG_SZ", "rpm Archive")
   RegWrite($lRegPath & "\7-Zip.rpm\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,10")
   RegWrite($lRegPath & "\7-Zip.rpm\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.rpm\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.rpm\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.squashfs" , "", "REG_SZ", "squashfs Archive")
   RegWrite($lRegPath & "\7-Zip.squashfs\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,24")
   RegWrite($lRegPath & "\7-Zip.squashfs\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.squashfs\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.squashfs\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.swm" , "", "REG_SZ", "swm Archive")
   RegWrite($lRegPath & "\7-Zip.swm\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,15")
   RegWrite($lRegPath & "\7-Zip.swm\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.swm\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.swm\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.tar" , "", "REG_SZ", "tar Archive")
   RegWrite($lRegPath & "\7-Zip.tar\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,13")
   RegWrite($lRegPath & "\7-Zip.tar\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.tar\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.tar\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.taz" , "", "REG_SZ", "taz Archive")
   RegWrite($lRegPath & "\7-Zip.taz\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,5")
   RegWrite($lRegPath & "\7-Zip.taz\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.taz\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.taz\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.tbz" , "", "REG_SZ", "tbz Archive")
   RegWrite($lRegPath & "\7-Zip.tbz\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,2")
   RegWrite($lRegPath & "\7-Zip.tbz\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.tbz\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.tbz\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.tbz2" , "", "REG_SZ", "tbz2 Archive")
   RegWrite($lRegPath & "\7-Zip.tbz2\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,2")
   RegWrite($lRegPath & "\7-Zip.tbz2\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.tbz2\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.tbz2\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.tgz" , "", "REG_SZ", "tgz Archive")
   RegWrite($lRegPath & "\7-Zip.tgz\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,14")
   RegWrite($lRegPath & "\7-Zip.tgz\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.tgz\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.tgz\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.txz" , "", "REG_SZ", "txz Archive")
   RegWrite($lRegPath & "\7-Zip.txz\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,23")
   RegWrite($lRegPath & "\7-Zip.txz\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.txz\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.txz\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.wim" , "", "REG_SZ", "wim Archive")
   RegWrite($lRegPath & "\7-Zip.wim\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,15")
   RegWrite($lRegPath & "\7-Zip.wim\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.wim\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.wim\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.xar" , "", "REG_SZ", "xar Archive")
   RegWrite($lRegPath & "\7-Zip.xar\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,19")
   RegWrite($lRegPath & "\7-Zip.xar\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.xar\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.xar\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.xz" , "", "REG_SZ", "xz Archive")
   RegWrite($lRegPath & "\7-Zip.xz\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,23")
   RegWrite($lRegPath & "\7-Zip.xz\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.xz\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.xz\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.z" , "", "REG_SZ", "z Archive")
   RegWrite($lRegPath & "\7-Zip.z\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,5")
   RegWrite($lRegPath & "\7-Zip.z\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.z\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.z\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
   RegWrite($lRegPath & "\7-Zip.zip" , "", "REG_SZ", "zip Archive")
   RegWrite($lRegPath & "\7-Zip.zip\DefaultIcon" , "", "REG_SZ", "C:\Program Files\7-Zip\7z.dll,1")
   RegWrite($lRegPath & "\7-Zip.zip\shell" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.zip\shell\open" , "", "REG_SZ" , "")
   RegWrite($lRegPath & "\7-Zip.zip\shell\open\command" , "", "REG_SZ", """C:\Program Files\7-Zip\7zFM.exe""" & " " & """%1""")
EndFunc

If @OSArch = "x64" Then
   ShellExecuteWait("7-Zip_x64.msi", "/q")
   Run("Reg Load HKLM64\MountedHive " & $lSysDrive & "\Users\Default\NTUSER.DAT", "", @SW_HIDE)
   Sleep("1000")
   RegWrite("HKLM64\MountedHive\Software\7-Zip", "Lang", "REG_SZ", "ru")
   Sleep("1000")
   Run("Reg Unload HKLM64\MountedHive", "", @SW_HIDE)
   RegWrite("HKCU64\Software\7-Zip" , "Lang", "REG_SZ", "ru")
   WriteParam("HKLM64\SOFTWARE\Classes")
Else
   RunWait("7-Zip_x32.exe /S")
   Run("Reg Load HKLM\MountedHive " & $lSysDrive & "\Users\Default\NTUSER.DAT", "", @SW_HIDE)
   Sleep("1000")
   RegWrite("HKLM\MountedHive\Software\7-Zip", "Lang", "REG_SZ", "ru")
   Sleep("1000")
   Run("Reg Unload HKLM\MountedHive", "", @SW_HIDE)
   RegWrite("HKCU64\Software\7-Zip", "Lang", "REG_SZ", "ru")
   WriteParam("HKLM\SOFTWARE\Classes")
EndIf

Сообщения об ошибках и недочетах приветствуюются.
P.S.1 - Модераторам Если не считаете тему нужной, можна удалять.
P.S.2 Неплохо было бы иметь тему-сборник рабочих скриптов для установки приложений, дабы каждый не придумывал сам себе велосипед, а использовал уже имеющиеся решения, которые будут опробованы и подправлены сообществом AutoIt
 

Вложения

  • 7-Zip.au3
    16.5 КБ · Просмотры: 13

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Alkantel [?]
Неплохо было бы иметь тему-сборник рабочих скриптов для установки приложений
Автоустановка приложений

дабы каждый не придумывал сам себе велосипед
Вы сами себе противоречите. :smile:
Знаю что подобная тема уже существует
 
Автор
Alkantel

Alkantel

Новичок
Сообщения
45
Репутация
1
Garrett сказал(а):
Тут не всегда есть готовые и рабочие решения. Тут больше решение трудностей в написании скриптов

Вы сами себе противоречите. :smile:
Не понимаю о чем Вы. Я говорил о том что бы каждый мог найти готовое решение для конкретной программы, если оно, решение, есть, а не ваять себе скрип, если он уже кем-то написан

Понял о чем Вы. Согласен, решение есть, но его можно улучшить, что я и сделал, о чем я и писал
которые будут опробованы и подправлены сообществом AutoIt
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Для готовых решений есть софтовые форумы и трекеры, здесь форум программирующих на autoit.
 
Автор
Alkantel

Alkantel

Новичок
Сообщения
45
Репутация
1
joiner сказал(а):
Для готовых решений есть софтовые форумы и трекеры, здесь форум программирующих на autoit.
По собственному опыту скажу что толку от них ноль, конечно я не имею в виду узкоспециализированные форумы, как этот, и несколько общеизвестных.
Но этот раздел разве не создан для помощи с автоустановкой приложений? несколько рабочих вариантов тут имеется и каждый желающий может ими воспользоваться. И если бы таких рабочих вариантов было бы больше, я не думаю что это негативно отразилось бы на форуме. Все сказанное мое имхо. Последнее слово за модераторами.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Но этот раздел разве не создан для помощи с автоустановкой приложений?
Для помощи в написании собственного кода автоустановки. Те, кто не могут написать сами,пишут запрос в Столе заказов. Лично я пользуюсь автоустановкой, если это предусмотренного создателями программы, и испытываю недоверие ко всем другим, зачастую, глючным способам автоинсталяции.
 
Автор
Alkantel

Alkantel

Новичок
Сообщения
45
Репутация
1
Лично я пользуюсь автоустановкой, если это предусмотренного создателями программы, и испытываю недоверие ко всем другим, зачастую, глючным способам автоинсталяции.
Аналогично. Поэтому и мне и нравится AutoIt. В большинстве случаев есть сандартные ключи тихой установки. И большинство программ можно настроить через редактирование конфигурационных файлов или реестр, что я и исползовал. В особо тяжких случаях можно с помощью AutoIt установить и отредактировать через ГУИ. Стараюсь всячески избегать левых инсталляторов и репаков. AutoIt сильно помогает. Хотя и тут можно отхватить "глючный способ инсталляции" :smile:
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Alkantel
Возможно покажется интересным мой способ регистрации в реестре используя цикл
Код:
Func _Ass_7zip()
	Local $aExt_ico, $aExt
	$TYPEALL = "rar|zip|7z|cab|gz|arj|bzip2|bz2|cpio|deb|dmg|gzip|hfs|lha|lzh|lzma|rpm|split|swm|tar|taz|tbz|tbz2|tgz|tpz|z|wim|xar"
	; отсебятина
	RegWrite("HKCR\.bootskin", '', 'REG_SZ', '7-Zip.zip')
	RegWrite("HKCR\.ip", '', 'REG_SZ', '7-Zip.zip')
	RegWrite("HKCR\.ksf", '', 'REG_SZ', '7-Zip.zip')

	$aExt = StringSplit($TYPEALL, "|")
	For $i = 1 To $aExt[0]
		RegWrite("HKCR\." & $aExt[$i], '', 'REG_SZ', '7-Zip.' & $aExt[$i])
		RegWrite("HKCR\7-Zip." & $aExt[$i], '', 'REG_SZ', $aExt[$i] & ' - архив')
		RegWrite("HKCR\7-Zip." & $aExt[$i] & "\shell", '', 'REG_SZ', '')
		RegWrite("HKCR\7-Zip." & $aExt[$i] & "\shell\open", '', 'REG_SZ', '')
		RegWrite("HKCR\7-Zip." & $aExt[$i] & "\shell\open\command", '', 'REG_SZ', '"' & $EXE & '" "%1"')
	Next

	Local $aExt_ico[28][2] = [ _
			['7z', '0'], _
			['arj', '4'], _
			['bz2', '2'], _
			['bzip2', '2'], _
			['cab', '7'], _
			['cpio', '12'], _
			['deb', '11'], _
			['dmg', '17'], _
			['gz', '14'], _
			['gzip', '14'], _
			['hfs', '18'], _
			['lha', '6'], _
			['lzh', '6'], _
			['lzma', '16'], _
			['rar', '3'], _
			['rpm', '10'], _
			['split', '9'], _
			['swm', '15'], _
			['tar', '13'], _
			['taz', '5'], _
			['tbz', '2'], _
			['tbz2', '2'], _
			['tgz', '14'], _
			['tpz', '14'], _
			['wim', '15'], _
			['xar', '19'], _
			['z', '5'], _
			['zip', '1']]
	For $i = 0 To 27
		RegWrite('HKCR\7-Zip.' & $aExt_ico[$i][0] & '\DefaultIcon', '', 'REG_SZ', $EXEPATH & '\7z.dll,' & $aExt_ico[$i][1])
	Next
	GUICtrlSetData($StatusBar, 'Файлы архивов ассоциированы с ' & $ExeNameExt)
EndFunc   ;==>_Ass_7zip

Взято из программы assotiations
 
Автор
Alkantel

Alkantel

Новичок
Сообщения
45
Репутация
1
AZJIO сказал(а):
Alkantel
Возможно покажется интересным мой способ регистрации в реестре используя цикл
Да, интересно. Надо его поковырять
Но чуть позже.
Это я и имел в виду когда говорил
которые будут опробованы и подправлены сообществом AutoIt
;D
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Alkantel
Вот у тебя есть поддержка x64, а х86 дистрибутив устанавливается в папку "C:\Program Files (x86)". Может ассоциацию лучше делать после проверки существования EXE-файла в папке назначения, при чём проверить оба варианта "C:\Program Files (x86)" и "C:\Program Files", чтобы не было казусов.

Ещё упрощение
Код:
If @OSArch = "x64" Then
	$HKLM = 'HKLM64'
   ShellExecuteWait("7-Zip_x64.msi", "/q")
Else
	$HKLM = 'HKLM'
   RunWait("7-Zip_x32.exe /S")
EndIf
 
Run("Reg Load " & $HKLM & "\MountedHive " & $lSysDrive & "\Users\Default\NTUSER.DAT", "", @SW_HIDE)
Sleep(1000)
RegWrite($HKLM & "\MountedHive\Software\7-Zip", "Lang", "REG_SZ", "ru")
Sleep(1000)
Run("Reg Unload " & $HKLM & "\MountedHive", "", @SW_HIDE)
RegWrite("HKCU64\Software\7-Zip" , "Lang", "REG_SZ", "ru")
WriteParam($HKLM & "\SOFTWARE\Classes")
 
Автор
Alkantel

Alkantel

Новичок
Сообщения
45
Репутация
1
AZJIO сказал(а):
Alkantel
Вот у тебя есть поддержка x64, а х86 дистрибутив устанавливается в папку "C:\Program Files (x86)". Может ассоциацию лучше делать после проверки существования EXE-файла в папке назначения, при чём проверить оба
Признаюсь, что бы выложить сюда код я его немного изменил. Я себе делаю флешку с набором софта с автоустановкой. И у меня это финальная часть установки 7-Zip. Для запуска есть лаунчер, который и делает то что вы сказали, проверку на наличие, выбор в зависимости от битности системы и т.д. Тут я это сильно упрстил. Если надо, могу выложить :smile:
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Alkantel
Проверка существования установившегося 7zip должна быть до ввода данных в реестр, а не после установки. Вдруг какой сбой и не удалось установить, а в реестр добавятся данные для не существующей программы.
 
Верх