Показать полную графическую версию : Автоматическая установка QuickSFV
привет
хочу сделать совмещенный 86-64 тихий установщик quicksvf 2.36 https://www.quicksfv.org/download.html
с регистрацией ассоциаций для md5, crc, svf
но что-то ни черта не выходит, экзешники с оффа не поддерживают никакие ключи
ps прога работает корректно от xp-10, на всех осях ее юзаю
может быть кто-н сможет помочь.
Vanadiy777
12-10-2023, 12:44
но что-то ни черта не выходит, экзешники с оффа не поддерживают никакие ключи »
Wu-Tang,
Если попробовать поставить программу через монитор установки, посмотреть, куда что прописывается,
затем, все это сохранить и собрать в свой 7z SFX. Как-то так...
nibble74
12-10-2023, 13:58
Wu-Tang, А как на счёт MSI установщика ? Вам обязательно EXE нужен ?
Vanadiy777
12-10-2023, 21:41
А как на счёт MSI установщика ? »
Там версия выше, чем нужна коллеге Wu-Tang,
А также, при использовании ключа тихой установки, по умолчанию регистрируются
все типы файлов, заложенные в приложении.
Как я понял, надо только три расширения md5, crc, svf
Wu-Tang, существует множество способов расчета контрольных сумм: самостоятельным приложением (HashTab и пр.), функцией приложения (7-zip и пр.), встроенными приложениями (PowerShell и пр.) Чем особенен quicksvf?
nibble74
13-10-2023, 00:33
Vanadiy777, Только сейчас посмотрел, действительно, msi по ходу ещё и урезанная версия.
Vanadiy777,
я думал об этом, распак идет четырех файлов в programm files, файлы разные, сверил по md5.
ключи отловил эти для х86, для х64 тоже самое:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shellex\ContextMenuHandlers\QuickSFV Shell Extension]
@="{906b0e6e-61ce-11d3-8ee2-0060080a7242}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.CRC]
@="File_Verification_Database"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.MD5]
@="File_Verification_Database"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.SFV]
@="File_Verification_Database"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}]
@="QuickSFV Shell Extension"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32]
@="C:\\Program Files\\QuickSFV\\QSFVShll.dll"
"ThreadingModel"="Apartment"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\QuickSFV Shell Extension]
@="{906b0e6e-61ce-11d3-8ee2-0060080a7242}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database]
@="File Verification Database"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\DefaultIcon]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE,0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell]
@="open"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\open]
@="&Open"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\open\command]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE \"%1\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\verify_all]
@="&Verify All"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\File_Verification_Database\Shell\verify_all\command]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE DOALL \"%1\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]
"{906b0e6e-61ce-11d3-8ee2-0060080a7242}"="QuickSFV Shell Extension"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellCompatibility\Objects\{906b0e6e-61ce-11d3-8ee2-0060080a7242}]
"CTXMENU_NOVERBS"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV]
"DisplayName"="QuickSFV (Remove only)"
"UninstallString"="C:\\Program Files\\QuickSFV\\QSFVUNST.EXE C:\\Program Files\\QuickSFV\\"
А также, при использовании ключа тихой установки, по умолчанию регистрируются
все типы файлов, заложенные в приложении.
Как я понял, надо только три расширения md5, crc, svf »
верно, те после тихой, надо еще восстанавливать дефолт для остальных, то что она перезаписала.
nibble74,
как ниже заметили, верно, он не доделанный.
sov44,
я пользуюсь разным в зависимости от обстоятельств, и hashtab и в тотале и иногда в 7zip, но эту я считаю максимально удобной и быстрой, юзаю ее еще со времен хр.
Vanadiy777
13-10-2023, 21:55
файлы разные, сверил по md5. »
Wu-Tang,
Все правильно, разрядность же разная.
Теперь, когда известен путь установки и значения реестра, собрать все это в 7z SFX.
Vanadiy777,
так собрать еще надо ведь )))
сделать регистрацию dll
Vanadiy777
14-10-2023, 00:30
так собрать еще надо ведь ))) »
Wu-Tang,
Так Вы ж не раз это делали... :wink:
сделать регистрацию dll »
Судя по монитору установки, dll, как таковой, не регистрируется,
а сразу добавляется значение в реестр.
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}]
@="QuickSFV Shell Extension"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32]
@="C:\\Program Files\\QuickSFV\\QSFVShll.dll"
"ThreadingModel"="Apartment"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shellex\ContextMenuHandlers\QuickSFV Shell Extension]
@="{906b0e6e-61ce-11d3-8ee2-0060080a7242}"
Vanadiy777,
ух, как ща понапишу :laugh:
Судя по монитору установки, dll, как таковой, не регистрируется,
видимо вы правы, что regsvr не участвует.
;!@Install@!UTF-8!
RunProgram=":hidcon:cmd /c xCopy "QuickSFV-%%P" "%ProgramFiles%\QuickSFV" /s /e /i /y"
RunProgram=":hidcon:cmd /c If Exist QuickSFV.reg REGEDIT /S QuickSFV.reg"
GUIMode="2"
MiscFlags="4"
;!@InstallEnd@!
структура:
http://ipic.su/img/img7/fs/2023-10-14_01-51-26.1697237501.jpg
но что-то мне, кажется, хрень какую-то понаписал :unsure: не фурыкает (((
посидел еще часок, вроде это заработало:
;!@Install@!UTF-8!
SetEnvironment="PF=%ProgramFiles%\\QuickSFV"
RunProgram="%%P:hidcon:cmd /c xCopy QuickSFV-%%P\\* \"%PF%\\\" /s /e /i /y"
RunProgram="%%P:hidcon:cmd /c If Exist QuickSFV.reg REGEDIT /S QuickSFV.reg"
GUIMode="2"
MiscFlags="4"
;!@InstallEnd@!
на х86 копирует правильно в programm files, а на х64 копирует неправильно в programm files x86, а должно тоже в programm files.
nibble74
14-10-2023, 04:06
Wu-Tang,
SetEnvironment="PFx86=%ProgramFiles%\\QuickSFV"
SetEnvironment="PFx64=%ProgramW6432%\\QuickSFV"
RunProgram="%%P:hidcon:cmd /c xcopy QuickSFV_%%P\\* \"%PF%%P%\" /e /i /y"
RunProgram="%%P:hidcon:cmd /c copy /y QSFVExit.bat \"%SystemRoot%\""
RunProgram="%%P:hidcon:REGEDIT /S QuickSFV.reg"
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\QuickSFV Shell Extension]
@="{906b0e6e-61ce-11d3-8ee2-0060080a7242}"
[HKEY_CLASSES_ROOT\.CKZ]
@="File_Verification_Database"
[HKEY_CLASSES_ROOT\.CRC]
@="File_Verification_Database"
[HKEY_CLASSES_ROOT\.MD5]
@="File_Verification_Database"
[HKEY_CLASSES_ROOT\.PAR]
@="File_Verification_Database"
[HKEY_CLASSES_ROOT\.SFV]
@="File_Verification_Database"
[HKEY_CLASSES_ROOT\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}]
@="QuickSFV Shell Extension"
[HKEY_CLASSES_ROOT\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}\InProcServer32]
@="C:\\Program Files\\QuickSFV\\QSFVShll.dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\QuickSFV Shell Extension]
@="{906b0e6e-61ce-11d3-8ee2-0060080a7242}"
[HKEY_CLASSES_ROOT\File_Verification_Database]
@="File Verification Database"
[HKEY_CLASSES_ROOT\File_Verification_Database\DefaultIcon]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE,0"
[HKEY_CLASSES_ROOT\File_Verification_Database\Shell]
@="open"
[HKEY_CLASSES_ROOT\File_Verification_Database\Shell\open]
@="&Open"
[HKEY_CLASSES_ROOT\File_Verification_Database\Shell\open\command]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE \"%1\""
[HKEY_CLASSES_ROOT\File_Verification_Database\Shell\verify_all]
@="&Verify All"
[HKEY_CLASSES_ROOT\File_Verification_Database\Shell\verify_all\command]
@="C:\\Program Files\\QuickSFV\\QuickSFV.EXE DOALL \"%1\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellCompatibility\Objects\{906b0e6e-61ce-11d3-8ee2-0060080a7242}]
"CTXMENU_NOVERBS"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]
"{906b0e6e-61ce-11d3-8ee2-0060080a7242}"="QuickSFV Shell Extension"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV]
"DisplayName"="QuickSFV (Remove only)"
"DisplayIcon"="C:\\Program Files\\QuickSFV\\QSFVUNST.EXE"
"UninstallString"="C:\\Windows\\QSFVExit.bat"
Ненужные расширения удалите или закомментируйте в reg файле
nibble74,
а строку для установки/удаления не нужно?
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV]
"DisplayName"="QuickSFV (Remove only)"
"UninstallString"="C:\\Program Files\\QuickSFV\\QSFVUNST.EXE C:\\Program Files\\QuickSFV\\"
и
GUIMode="2"
MiscFlags="4"
и это в конф файле?
Vanadiy777
14-10-2023, 19:14
а строку для установки/удаления не нужно? »
Wu-Tang,
Стандартный Uninstall не отрабатывает корректно... Ключи удаляет, а файлы и папку оставляет на месте...
Может, на удаление какой-нибудь батник сделать?
nibble74
14-10-2023, 22:45
Wu-Tang,
Создаём батник "QSFVExit.bat" с таким содержимым:
@echo off
Reg Delete "HKCR\*\shellex\ContextMenuHandlers\QuickSFV Shell Extension" /f
Reg Delete "HKCR\.CKZ" /f
Reg Delete "HKCR\.CRC" /f
Reg Delete "HKCR\.MD5" /f
Reg Delete "HKCR\.PAR" /f
Reg Delete "HKCR\.SFV" /f
Reg Delete "HKCR\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}" /f
Reg Delete "HKCR\Directory\shellex\ContextMenuHandlers\QuickSFV Shell Extension" /f
Reg Delete "HKCR\File_Verification_Database" /f
Reg Delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellCompatibility\Objects\{906b0e6e-61ce-11d3-8ee2-0060080a7242}" /f
Reg Delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" /v "{906b0e6e-61ce-11d3-8ee2-0060080a7242}" /f
Reg Delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV" /f
rd /s/q "C:\Program Files\QuickSFV"
Pause
rem Батник удаляется
del /f /q %0
Архивируете его в корень SFX архива, там же где и REG файл.
Посмотрите мой пост под номером 12, я его немного изменил. Дополнил конфиг и reg.
Надеюсь разберётесь )
nibble74,
Протестиил все, строка в установке и удалении появляется - http://ipic.su/img/img7/fs/2023-10-15_05-01-14.1697335455.jpg
удаление, удаляет, но иногда было, что не удаляло dll, отказано в доступе - http://ipic.su/img/img7/fs/2023-10-15_05-07-12.1697335644.jpg
как-то через раз происходило, я раз 10 протестил.
есть ли смысл сделать так в батнике:
@echo off
taskkill /f /im explorer.exe
Reg Delete "HKCR\*\shellex\ContextMenuHandlers\QuickSFV Shell Extension" /f
Reg Delete "HKCR\.CRC" /f
Reg Delete "HKCR\.MD5" /f
Reg Delete "HKCR\.SFV" /f
Reg Delete "HKCR\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}" /f
Reg Delete "HKCR\Directory\shellex\ContextMenuHandlers\QuickSFV Shell Extension" /f
Reg Delete "HKCR\File_Verification_Database" /f
Reg Delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellCompatibility\Objects\{906b0e6e-61ce-11d3-8ee2-0060080a7242}" /f
Reg Delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" /v "{906b0e6e-61ce-11d3-8ee2-0060080a7242}" /f
Reg Delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV" /f
rd /s/q "C:\Program Files\QuickSFV"
start explorer.exe
Pause
rem Батник удаляется
del /f /q %0
либо может у команды rd ключ принудительного удаления, чтобы не убивать explorer?
nibble74
15-10-2023, 10:53
Тоже заметил, что ДЛЛ (иногда) блокируется.
Попробуйте зациклить:
taskkill /F /IM explorer.exe & start explorer.exe
:hmmm
if EXIST "C:\Program Files\QuickSFV\QSFVShll.dll" del /f /q "C:\Program Files\QuickSFV\QSFVShll.dll"
if EXIST "C:\Program Files\QuickSFV\QSFVShll.dll" goto hmmm
Спешу по делам :yes:
nibble74,
хм, а вот этот кусок в какое место скрипта вставить, так что ли:
@echo off
Reg Delete "HKCR\*\shellex\ContextMenuHandlers\QuickSFV Shell Extension" /f
Reg Delete "HKCR\.CRC" /f
Reg Delete "HKCR\.MD5" /f
Reg Delete "HKCR\.SFV" /f
Reg Delete "HKCR\CLSID\{906b0e6e-61ce-11d3-8ee2-0060080a7242}" /f
Reg Delete "HKCR\Directory\shellex\ContextMenuHandlers\QuickSFV Shell Extension" /f
Reg Delete "HKCR\File_Verification_Database" /f
Reg Delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellCompatibility\Objects\{906b0e6e-61ce-11d3-8ee2-0060080a7242}" /f
Reg Delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" /v "{906b0e6e-61ce-11d3-8ee2-0060080a7242}" /f
Reg Delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\QuickSFV" /f
taskkill /F /IM explorer.exe & start explorer.exe
:hmmm
if EXIST "C:\Program Files\QuickSFV\QSFVShll.dll" del /f /q "C:\Program Files\QuickSFV\QSFVShll.dll"
if EXIST "C:\Program Files\QuickSFV\QSFVShll.dll" goto hmmm
rd /s/q "C:\Program Files\QuickSFV"
Pause
rem Батник удаляется
del /f /q %0
вот так вроде работает.
я в правильное место вставил?
nibble74
15-10-2023, 21:57
Wu-Tang, Да. Всё правильно.
Или так:
:hmmm
if EXIST "C:\Program Files\QuickSFV\QSFVShll.dll" rd /s/q "C:\Program Files\QuickSFV"
if EXIST "C:\Program Files\QuickSFV\QSFVShll.dll" goto hmmm
pause
nibble74,
Действительно, предела совершенству нет )))
Отловил баг, программа пишет в свою папку файл настроек ini, где сохраняет дефолтный алгоритм и расположение окна, так вот я тестил на чистых осях 7 и 10, она не может его туда записать и каждый раз приходится заново выбирать алгоритм, стоит отключить uac, то сразу нормально записывает.
так вот мне пришло в голову, как бы папке quicksfv в program files поменять права на юзера с правом записи в нее, чтобы после установки файл настроек мог туда писаться, у кого uac включен, нашел тулзу - http://forum.oszone.net/post-2732946-1244.html но не знаю как это реализовать в нашем конфиге установки.
либо как-то через:
cmd.exe /c takeown /f
или этот способ - http://forum.oszone.net/thread-85764.html
icacls
те дать rw на эту папку юзеру.
https://vmblog.ru/utilita-icacls-dlya-upravleniya-ntfs-dostupom-k-fajlam-i-papkam/
https://ab57.ru/cmdlist/icacls.html
может как-то так:
icacls "%programfiles%\quicksfv" /grant *S-1-1-0:(D,WDAC)
наверное проще дать разрешения запись/чтение/изменение для группы "Все"
ps
получилось присвоить группу "Все" и дать полные права:
ICACLS "%programfiles%\quicksfv" /grant:r "*S-1-1-0":(OI)(CI)F /T
но не знаю то это или не то.
или все, кроме полного доступа и особых разрешений:
ICACLS "%programfiles%\quicksfv" /grant:r "*S-1-1-0":(OI)(CI)(M,R) /T
ps2 блин, все протестил, нифига не проканало, все равно, работает только при отключении uac, а так и владельцев менял и права, все безтолку. ((( вот зараза, пол дня просидел зря (((
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.