Как мой процесс удаления может корректно работать с восстановлением записей реестра? - PullRequest
0 голосов
/ 31 декабря 2008

Иногда необходимо изменить настройки реестра Windows во время установки приложения. Недавно я был разочарован приложениями, которые не восстанавливают эти настройки при их удалении. Как я уже думал об этом, мне приходит в голову, что не может быть хорошего (или действительного) способа сохранить и восстановить настройки реестра. Возьмите следующую последовательность событий, например:

  1. Приложение А владеет действием Открыть для расширения файла .abc.
  2. Приложение B установлено и захватывает действие Открыть для расширения файла .abc.
  3. Приложение А удалено.
  4. Приложение B удалено.

На шаге 3, если Приложение A достаточно умен, оно обнаружит, что оно больше не владеет действием Open, и поэтому пропустит любую попытку его восстановления.

На шаге 4, может ли какое-либо действительное действие, которое может предпринять Приложение B?

  • Бездействие оставляет действие Open, указывающее на удаленный исполняемый файл.
  • Восстановление указателя на Приложение A также является удаленным исполняемым файлом.
  • Запрашивать у пользователя запрещено, поскольку это обычно считается за пределами технических навыков обычного пользователя. Если вы не согласны, замените другое изменение реестра в шагах 1 и 2, которое, по вашему мнению, будет выходить за рамки ответа пользователя.
  • Удаление действия также потребует от пользователя принять неинформированное решение позднее или сделать какую-либо функцию недоступной для пользователя.

Это только одна из многих плохих ситуаций, которые я могу себе представить, когда не существует очевидного единственного «правильного» решения. Мой следующий проект потребует изменений в реестре во время установки, и я хотел бы знать, как лучше или рекомендуется для удаления. К сожалению, меня сгорели плохие практики удаления в текущих коммерческих пакетах, поэтому я знаю, что здесь нет единого мнения о наилучшей практике, и это либо большая работа, чтобы сделать это правильно, либо недостаток дизайна в реестре или оба.

Это очень реальная проблема для меня. Я отмечаю это субъективно, потому что я не уверен, что есть какой-то универсальный правильный ответ на этот вопрос. Пожалуйста, не стесняйтесь не соглашаться.

1 Ответ

1 голос
/ 31 декабря 2008

Если вы пишете Приложение B, то я бы сказал, что не стоит угонять действие Open для расширения .abc. Во время установки спросите пользователя, хочет ли он ассоциировать файлы .abc с вашей программой. Во время удаления проверьте, связана ли ваша программа. Если это так, отмените расширение файла, в противном случае оставьте его в покое.

Если есть другое приложение, которое все еще хочет быть связанным с файлами .abc после удаления B, жестко - заставьте пользователя это исправить. В конце концов, он согласился связать файлы .abc с вашим приложением, а затем удалил ваше приложение.

...