УЧЕБНИК ПО АВТОУСТАНОВКЕ WINDOWS


         

Пример 2. учебный аддон Puntoswitcher (от jameszero) - часть 6


4. Дерегистрация библиотек

Создаём в «шапке» строчку UnRegisterDlls = CTF.UnRegister а в INF-файле прописываем:

[CTF.UnRegister]

11,,msimtf.dll

11,,Msctf.dll

Цифра 11, согласно dirids, означает, что файл находится в System32. Если бы файл находился, скажем, в Windows, то строчки выглядели бы таким образом - 10,,msimtf.dll. Возможна ситуация, когда файл находится, например, в Program Files\Prog1\file.dll, в таком случае отмена регистрации выглядела бы так: 16422,Prog1,file.dll

И вернёмся к двум последним строчкам нашей секции AddReg:

HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce","msimtf",0x20000,"regsvr32.exe /s /u %11%\msimtf.dll"

HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce","msctf",0x20000,"regsvr32.exe /s /u %11%\Msctf.dll"

Они, по сути, также выполняют дерегистрацию библиотек, но уже после перезагрузки, в данном случае в момент времени Т13. Двойная отмена регистрации необходима только в конкретном аддоне, потому что система регистрирует msimtf.dll и Msctf.dll заново, а в большинстве случаев достаточно однократной дерегистрации.

5. Теперь приступим к секциям деинсталляции аддона.

Для PS недостаточно удалить только файлы – необходимо так же восстановить работу стандартного переключателя раскладок. В процессе удаления будет участвовать секция [punto_sw.Uninstall] и дальше по тексту, теперь её будем именовать «шапкой». Итак, редактируем «шапку» следующим образом:

[punto_sw.Uninstall]

DelFiles  =  punto_sw.Del

ProfileItems =  punto_sw.DelShortcut

DelReg  =  punto_sw.DelReg

AddReg  =  CTFMON.Restore

RegisterDlls = CTF.dll.Restore

С директивой DelFiles понятно – она вызовет соответствующую секцию со списком удаляемых файлов. ProfileItems – удаляет ярлык, но секции удаления ярлыков несколько отличаются от секций создания. Здесь всё просто - достаточно указать имя ярлыка и подпапку, в которой он находится.


Содержание  Назад  Вперед