Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 52
Благодарности: 2

Профиль | Отправить PM | Цитировать


Всем привет.
Вот, что у меня получилось.
Скрытый текст
Код: Выделить весь код
!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 и избавиться от кнопки ОК. (Так, было бы красивей и практичней, может, кто поможет и в этом), но для начала сойдет и так.

Последний раз редактировалось динозавра, 23-08-2019 в 14:49.

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:35, 23-08-2019 | #2294