Come può il mio processo di disinstallazione gestire correttamente il ripristino delle voci di registro?

StackOverflow https://stackoverflow.com/questions/402017

  •  03-07-2019
  •  | 
  •  

Domanda

A volte è necessario modificare le impostazioni del registro di Windows durante l'installazione di un'applicazione. Di recente sono stato frustrato dalle applicazioni che non ripristinano queste impostazioni quando vengono disinstallate. Mentre pensavo di più a questo proposito, mi viene in mente che potrebbe non esserci un buon (o valido) modo per salvare e ripristinare le impostazioni del registro. Prendi ad esempio la seguente sequenza di eventi:

  1. L'applicazione A è proprietaria dell'azione Apri per estensione .abc .
  2. L'applicazione B è installata e dirotta l'azione Apri per l'estensione di file .abc .
  3. L'applicazione A è disinstallata.
  4. L'applicazione B è disinstallata.

Al passaggio 3, se l'applicazione A è abbastanza intelligente, rileverà che non possiede più l'azione Apri e quindi salterà qualsiasi tentativo di ripristinarla.

Al punto 4, c'è qualche azione valida che l'applicazione B può intraprendere?

  • Non fare nulla lascia l'azione Open che punta a un eseguibile eliminato.
  • Anche il ripristino del puntatore all'applicazione A è un eseguibile eliminato.
  • Chiedere all'utente non è permesso poiché questo è generalmente considerato molto al di là delle capacità tecniche dell'utente tipico. Se non accetti, sostituisci una diversa modifica del registro nei passaggi 1 e 2 a cui ritieni che non rientrerebbe nell'ambito di applicazione per l'utente di rispondere.
  • Allo stesso modo, l'eliminazione dell'azione richiederà all'utente di prendere una decisione non informata in un secondo momento, oppure rendere alcune funzioni non disponibili all'utente.

Questa è solo una delle tante brutte situazioni che posso immaginare in cui non esiste un unico "solo" corretto " soluzione. Il mio prossimo progetto richiederà modifiche al registro durante l'installazione e vorrei conoscere la procedura migliore o consigliata per la disinstallazione. Sfortunatamente, sono stato bruciato da cattive pratiche di disinstallazione negli attuali pacchetti commerciali, quindi sono consapevole che non c'è consenso sulle migliori pratiche qui, o è un sacco di lavoro per farlo bene, oppure un difetto di progettazione nel Registro di sistema o entrambi.

Questo è un vero problema di programmazione per me. Lo sto tag soggettivo perché non sono sicuro che ci sia una risposta unica giusto a questo. Sentiti libero di non essere d'accordo.

È stato utile?

Soluzione

Se stai scrivendo l'Applicazione B, direi in primo luogo di non dirottare l'azione Apri per l'estensione .abc. Durante l'installazione, chiedi all'utente se desidera associare i file .abc al tuo programma. Durante la disinstallazione, controlla se il tuo programma è ancora associato. In tal caso, dissociare l'estensione del file, altrimenti lasciarla sola.

Se c'è un'altra applicazione che vuole essere ancora associata ai file .abc dopo aver disinstallato B, difficile - fai riparare l'utente. Dopotutto, ha acconsentito ad associare i file .abc alla tua applicazione, quindi ha disinstallato la tua applicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top