Всем привет.
Вот, что у меня получилось.
Скрытый текст
Код:
!define NAME "Registry cleaning"
VIProductVersion "0.0.0.1"
VIAddVersionKey "LegalCopyright" "© Lbyjpfdh"
VIAddVersionKey "FileVersion" "0.1"
VIAddVersionKey "FileDescription" "Cleaning and editing the registry"
VIAddVersionKey "ProductName" "For version Total Uninstall 6.27.0.565"
VIAddVersionKey "ProductVersion" "0.0.0.1"
Name "${NAME}"
Caption "${NAME}"
OutFile "Cleaning and editing the registry.exe"
InstallDir "$TEMP"
Icon "icon.ico"
!include x64.nsh
!include "FileFunc.nsh"
!include "LogicLib.nsh"
SilentInstall silent
SetCompress off
Section
SetOutPath "$TEMP"
SetOverwrite on
File "..\..\..\..\install\Registry cleaning.exe"
File "..\..\..\..\install\TrashRegFull.exe"
File "..\..\..\..\install\TrashRegX64Full.exe"
File "..\..\..\..\install\ACL.TXT"
File "..\..\..\..\install\ACLL.TXT"
File "..\f.bat"
Delete "$APPDATA\mntemp"
Delete "$WINDIR\System32\linjqbyk.kfl"
Delete "$SYSDIR\linjqbyk.kfl"
Delete "$WINDIR\SysWOW64\linjqbyk.kfl"
SectionEnd
Section
${DisableX64FSRedirection}
Delete "$WINDIR\System32\linjqbyk.kfl"
Delete "$SYSDIR\linjqbyk.kfl"
SectionEnd
Function .onInit
System::Call "kernel32::GetUserDefaultLCID() i.r0"
IntOp $LANGUAGE $0 & 0xFFFF
IntFmt $0 "%04X" $0
FunctionEnd
Section
${If} $0 = 0419
MessageBox MB_YESNO|MB_TOPMOST|MB_USERICON "Хотие очистить реестр от триальных ключей?" IDYES a IDNO b
Abort
a:
Exec '"$INSTDIR\Registry cleaning.exe"'
nsExec::Exec '"$INSTDIR\f.bat"'
MessageBox MB_OK|MB_TOPMOST|MB_USERICON "Реестр от триальных ключей очищен."
b:
Delete "$INSTDIR\*.*"
Abort
MessageBox MB_OK|MB_TOPMOST|MB_USERICON "Реестр от триальных ключей очищен."
Delete "$INSTDIR\*.*"
${EndIf}
${If} $0 != 0419
MessageBox MB_YESNO|MB_TOPMOST|MB_USERICON "Wanting to clear the registry of trial keys?" IDYES c IDNO d
Abort
c:
Exec '"$INSTDIR\Registry cleaning.exe"'
nsExec::Exec '"$INSTDIR\f.bat"'
MessageBox MB_OK|MB_TOPMOST|MB_USERICON "The registry of trial keys is cleared."
d:
Delete "$INSTDIR\*.*"
Abort
MessageBox MB_OK|MB_TOPMOST|MB_USERICON "The registry of trial keys is cleared."
Delete "$INSTDIR\*.*"
${EndIf}
SectionEnd
Теперь по порядку.
Registry cleaning.exe" это файл с кодом:
Скрытый текст
Код:
OutFile "Registry cleaning.exe"
!define MsgBoxTimeout "!insertmacro macro__MsgBoxTimeout"
!macro macro__MsgBoxTimeout text caption_text time
System::Call "user32::MessageBoxTimeout(i$HWNDPARENT, t`${text}`, t`${caption_text}}`,i0,i0, i${time})"
!macroend
SilentInstall silent
SetCompress off
!include "LogicLib.nsh"
Function .onInit
System::Call "kernel32::GetUserDefaultLCID() i.r0"
IntOp $LANGUAGE $0 & 0xFFFF
IntFmt $0 "%04X" $0
FunctionEnd
Section
${If} $0 = 0419
${MsgBoxTimeout} "Процес очистки закончится через несколько секунд." "Registry cleaning" 2500
${EndIf}
${If} $0 != 0419
${MsgBoxTimeout} "The cleaning process will end in a few seconds." "Registry cleaning" 2500
${EndIf}
SectionEnd
Файлы TrashRegFull.exe и TrashRegX64Full.exe - это "вылеченные" TrashReg, чтобы могла работать в форсированом, скрытом режиме.
Файлы ACL.TXT и ACLL.TXT - это получение прав владельца на ключ реестра с использованием встроенной команды REGINI.
Файлы - mntemp и linjqbyk.kfl один из многих видов защиты Гаврилы.
Файл f.bat - это батник с таким содержимым:
Скрытый текст
Код:
@echo off
start /wait TrashRegFull.exe /forced
start /wait TrashRegX64Full.exe /forced
REGINI "%temp%\acl.txt"
reg delete "HKEY_LOCAL_MACHINE\SECURITY" /va /f
reg add "HKEY_LOCAL_MACHINE\SECURITY" /v SecFlagsR0E /t reg_dword /d 4294967295 /f
reg add "HKEY_LOCAL_MACHINE\SECURITY" /v SecFlagsR0D /t reg_dword /d 4294967295 /f
REGINI "%temp%\acll.txt"
exit /b
Для чего сделана эта "поделка"?
После применения возобновляется работа Total Uninstall 6.27.0.565 с недоломаным лекарством от RmK-FreE. Лекарству от Jongan тоже в помощь.
Так же попутно очищается реестр от "мусорных" ключей, отвечающих за триальный период многих програм.
Готовая поделка лежит тут -
https://www.upload.ee/files/10389548...istry.zip.html
Огромная благодарность всем отозвавшимся на мои просьбы о помощи (начиная с моего первого "помогите" Отправлено: 20:53, 09-08-2015 | #1739)
Так и не осилил "прикрутить" показ иконки в Registry cleaning.exe и избавиться от кнопки ОК. (Так, было бы красивей и практичней, может, кто поможет и в этом), но для начала сойдет и так.