
davide.friends1.552492402807409E12 asked a question.
Remove only
hi, if I run the setup after I installed my software it shows me 3 options:
-Modify
-Repair
-Uninstall
how can I disable Modify and Repair when I run second time Setup?
I already used for Add/Remove programs the following option and it works well:
Setting Add/Remove Programs Properties
InstallShield 2008
Task
To specify Add/Remove Programs properties:
Open the General Information view.
Under the General Information heading, click Add/Remove Programs to display the Add/Remove Programs property sheet.
Select the property to edit by clicking its value field in the property sheet.
Enter a new value for the property or edit an existing value.
Click elsewhere in the property sheet to see the changes take effect.
Thank u in advance,
Davide
If its Basic MSI,
General -> Add or Remove Programs
Disable Change Button : Yes
Disable Remove Button : No
Disable Repair Button : Yes
Davide
InstallShield 2008 Premier - InstallScript MSI project and I dont see Disable Repair :(
Davide "
Ah, ok.
I've never used an InstallScript MSI project, but I believe that the UI is driven the same was as a pure InstallScript project.
If that's the case, set the type directly to "Remove" in your code and skip the dialog you're talking about all together by commenting out the call to it. In that case, I believe the next dialog that is usually displayed is the "Are you sure you want to uninstall ?" dialog box which makes still makes sense.
Would like to disable these options when the user runs setup.exe again on a system that has the s/w installed. So, the only option I wish to present is "Remove". Is there any way to achieve this?
The process for doing either can be somewhat complex, though.
You'll want to modify what's displayed by either modifying the OnMaintUiBefore or modifying the dialog. "
I thought that's what I said...
Its what I meant, anyway. ;)
I thought that's what I said...
Its what I meant, anyway. ;) "
Sorry, I was just meaning to reinforce what you had suggested more explicitly, but you are correct.
Sorry for the confusion.
Davide
function OnMaintUIBefore()
numbernResult;
numbernType;
numbernMediaFlags;
stringszIgnore;
begin
// Only allow a remove all.
nType = REMOVEALL;
// Display uninstall prompt message box
nResult = MessageBox( SdLoadString( IFX_MAINTUI_MSG ), MB_YESNO );
// Check user result
if (nResult != IDYES ) then
// User selected no; do not uninstall
nType = 0;
bMoveData = FALSE;
endif;
if (REMOVEALL = nType) then
// Ensure that all previously installed components are removed
// for media that supports updating.
MediaGetData( MEDIA, MEDIA_FIELD_MEDIA_FLAGS, nMediaFlags, szIgnore );
if( nMediaFlags & MEDIA_FLAG_UPDATEMODE_SUPPORTED ) then
ComponentRemoveAllInMediaAndLog();
else
ComponentRemoveAllInMedia();
endif;
endif;
end;
The result is that a Yes/No message box appear, asking the user if they wish to completely remove the application.