Oui, il est possible de le faire. Listes MSDN several options; cependant, il peut être plus simple de patcher le fichier MSI créé par Visual Studio. Cela peut être fait en utilisant Orca (Vous trouverez un installateur pour cet outil dans le dossier Windows SDK généralement sous C: \ Program Files \ Microsoft SDK \ Windows \ v6.0A \ Bin \ orca.msi).
Orca vous permet de modifier les tables de base de données MSI. Pour masquer le bouton d'annulation vous devez ajouter un enregistrement à la table ControlCondition (de here):
Dialog | Control | Action | Condition
------------------------------------------------------
ProgressForm | CancelButton | Hide | 1
Cette tâche manuelle d'ajouter un enregistrement à l'aide Orca est probablement mieux fait avec un court VBScript comme ça:
Set oMsi = CreateObject("WindowsInstaller.Installer")
' get path to msi from command line
strMsiFullPath = Wscript.Arguments(0)
' open transacted
Set oDB = oMsi.OpenDatabase(strMsiFullPath , 1)
' insert a record into the [ControlCondition][3] table
Set oView = oDB.OpenView("INSERT INTO `ControlCondition` " & _
"(`ControlCondition`.`Dialog_`, `ControlCondition`.`Control_`," & _
"`ControlCondition`.`Action`, `ControlCondition`.`Condition`) " & _
"VALUES ('ProgressForm', 'CancelButton', 'Hide', '1')")
' clean up
oView.Execute: oView.Close: oDB.Commit
Set oMsi = Nothing
Ce script peut être ajouté comme une étape de post-construction à votre projet d'installation (Notez qu'il ya une faute de frappe dans la variable Visual studio pour le chemin de sortie):
cscript $(ProjectDir)patch.vbs $(BuiltOuputPath)
Bonne réponse. Tu m'as définitivement orienté dans la bonne direction. Malheureusement, 'ProgressForm' n'est pas le dialogue qui montre la progression pendant la désinstallation. En fait, j'ai parcouru toutes les boîtes de dialogue dans la table de dialogue et ajouté des numéros aux titres afin que je puisse retrouver cette boîte de dialogue, sans aucune chance du tout. Je suppose que la boîte de dialogue de progression de la désinstallation n'est pas modifiable à l'aide de la table ControlCondition. Pourtant, j'apprécie la réponse car elle a ouvert beaucoup de possibilités de personnalisation pour moi. Merci :) – Ben