cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Pilgrim

improper uninstall message

It could be simple but somehow I do not know how to do this:



"XXX is configuring your new software installation." This message appears in both install and uninstall processes. Can I change it? Which function to call to set that string? Thanks.
Labels (1)
0 Kudos
5 Replies
Highlighted
Pilgrim

Re: improper uninstall message

Aah, so, it's actually not my own inability of not being able to change the text. It took 3 years for some people to find a hack on this issue. :D Locate an old link in the archive for reference: http://community.macrovision.com/showthread.php?t=124697. Lucky me.

Will try that but not sure if the same ID would still be valid on InstallShield 2008 settings. I wish there is a proper way to just modify this simple text.
0 Kudos
Highlighted
Pilgrim

setup status dialog text

You actually need to use User32.SetDlgItemText() in IS 2008.
http://community.macrovision.com/showthread.php?t=148301
0 Kudos
Highlighted
Pilgrim

Re: improper uninstall message

They finally added a function to do this in InstallShield 11...

SetStatusExStaticText(szString);

szString
The text to be set as the static text. The following standard strings are available using the SdLoadString function:

IDS_IFX_STATUSEX_STATICTEXT_FIRSTUI—The InstallShield Wizard is installing %P.
IDS_IFX_STATUSEX_STATICTEXT_MAINTUI_MODIFY—The InstallShield Wizard is modifying %P.
IDS_IFX_STATUSEX_STATICTEXT_MAINTUI_REPAIR—The InstallShield Wizard is repairing %P.
IDS_IFX_STATUSEX_STATICTEXT_MAINTUI_REMOVEALL—The InstallShield Wizard is removing %P.
IDS_IFX_STATUSEX_STATICTEXT_UPDATEUI—The InstallShield Wizard is updated %VI of %P to version %VS.

e.g. in your OnMaintUIBefore() method, call it like this if the user has selected REMOVEALL:
SetStatusExStaticText(SdLoadString(IDS_IFX_STATUSEX_STATICTEXT_MAINTUI_REMOVEALL));
0 Kudos
Highlighted
Pilgrim

TIP: How to refresh/repaint Text control

I ran into a problem just this week where text was not updating correctly AFTER using the SetDlgItemText. So I created a function called RepaintControl. Below is the code. I hope this helps.


prototype RepaintControl(HWND, NUMBER);
/**
* @brief Refreshes specified control
*
* @arg p_hDialog parent dialog handle
* @arg p_nControl ControlID to repaint

*/
function RepaintControl(p_hDialog, p_nControl)
HWND hControl;
begin
hControl = GetDlgItem(p_hDialog, p_nControl);
InvalidateRect(hControl, NULL, FALSE);
UpdateWindow(hControl);
end;


The call to the function would look like this:

hRegDlg = CmdGetHwndDlg (szRegDialog);
//Repaint control and refresh dialog
//NOTE: Substitute your own control ID. It can be a defined value as seen below or simply a number (e.g., 50, 710, etc)
RepaintControl(hRegDlg, TEXT_PN40);


InvalidateRect and UpdateWindow are User32 function calls.
0 Kudos
Highlighted
Pilgrim

3Q very much

DLee65 wrote:
I ran into a problem just this week where text was not updating correctly AFTER using the SetDlgItemText. So I created a function called RepaintControl. Below is the code. I hope this helps.


prototype RepaintControl(HWND, NUMBER);
/**
* @brief Refreshes specified control
*
* @arg p_hDialog parent dialog handle
* @arg p_nControl ControlID to repaint

*/
function RepaintControl(p_hDialog, p_nControl)
HWND hControl;
begin
hControl = GetDlgItem(p_hDialog, p_nControl);
InvalidateRect(hControl, NULL, FALSE);
UpdateWindow(hControl);
end;


The call to the function would look like this:

hRegDlg = CmdGetHwndDlg (szRegDialog);
//Repaint control and refresh dialog
//NOTE: Substitute your own control ID. It can be a defined value as seen below or simply a number (e.g., 50, 710, etc)
RepaintControl(hRegDlg, TEXT_PN40);


InvalidateRect and UpdateWindow are User32 function calls.


You answor helped me, 3Q。
0 Kudos