Uninstall Survey

From ISXKB

Revision as of 13:47, 10 November 2007 by Markus (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

Contents

Introduction to Uninstall Survey

With Uninstall Survey (IssSurvey.dll extension) for Inno Setup you can get users feedback / comments / uninstall reasons by presenting a quick survey when your product is about to be uninstalled. It is true that most of the users will click right past it, but a small number will give you some feedback that maybe will help you improve the product. You may not get a lot of quality information with uninstall survey, but you may well find one "gem" that will make a big difference in sales/quality - something your software maybe is missing, for example.

Preview

Image:IssSurvey.jpg

Features

  • Easy to use
  • Small size (only 25KB)
  • Multi-language support (text info and reasons template are fully customizable)
  • User feedback it is sent by a POST to a php script on the application/publisher home page. A user name and password can also be sent for more security. (php scripts examples included)
  • What to do with the user feedback is up to you. You can either make the php script to send the comments/feedback in your mail inbox or save it in a local file on your server or in a database.
  • Uses the standard Windows Internet API (wininet.dll) for internet connection meaning that there is no need for a proxy configuration as long as IE (Internet Explorer) is configured

Implementation

How do I get it to work with Inno?

1. Download Uninstall Servey from this page: Uninstall Survey for Inno Setup. The package contains IssSurvey.dll and an Inno Setup script example with server side scripts.

The Code

2. Add the extension (IssSurvey.dll) in your [Files] section script along with the language file (IssSurvey.ini) if you need to customize default survey text:

[Files]
;------ Copy Survey Extension (IssSurvey.dll) in your app install folder to use it on unistall
Source: IssSurvey.dll; DestDir: {app}
;------ Copy Survey Extension Language File (IssSurvey.ini) in your app install folder
Source: IssSurvey.ini; DestDir: {app}
;------

3. Add the code below to your script's [Code] section (you can modify it as you like):

[Code]
// IssSurvey function called on uninstall
function IssSurvey(Language: PChar; ReasonsList: PChar; Server: PChar; UserName: PChar; Password: PChar): Integer;
external 'IssSurvey@{app}\IssSurvey.dll stdcall uninstallonly';
//********************************************************************************************************************************************
// IssSurvey function returns: 0 if the user has submited the comments; 1 if cancel or close pressed; 2 if ignore/skip pressed; -1 if an error occured
//
//  Language	= IssSurvey language dialog. Set this value to empty '' and default english will be used
//				( see and include IssSurvey.ini if you need custom text or other language)
//
//  ReasonsList  = Uninstall reasons templates list. Separate multiple reasons with semicolon.
//				 Set this value to empty string '' to hide the template reasons combo box and show only the edit box
//
//  Server	  = Full http path to a php script. The IssSurvey will POST at this adresss the selected uninstall reason and any user feedback/comments.
//				Ex: 'http://raz-soft.com/IssSurvey/IssSurvey_mail.php'
//				Informations posted when the user submits the survey from IssSurvey Extension:
//				$name	  = the name you pass on the IssSurvey Extension function	 (for security purpose)
//				$pass	  = the password you pass on the IssSurvey Extension function (for security purpose)
//				$cntinfo   = the user reason/comments/feedback. !!Warning: the sent text is base64 encoded.
//				$IssSurvey = just for a check control. It will be set to 1 by IssSurvey Extension
//
//  UserName   =  a user name to submit along with the reason/comments  (for security purpose)
//
//  Password   =  a password to submit along with the reason/comments  (for security purpose)
//
//******************************************************************************************************************************************
function InitializeUninstall(): Boolean;
var
  sReasons: String;
  nCode: Integer;  { 0 if the user has submited the comments; 1 if cancel or close pressed; 2 if ignore/skip pressed; -1 if an error occured }
begin
	 Result   := false;
	 sReasons := 'I do not understand how to use this product;I like the product but do not want to pay for it;I was bothered by the sponsored links;Other reason (see below):';
	 nCode	:= IssSurvey('en',sReasons,'http://raz-soft.com/IssSurvey/IssSurvey_mail.php','demo','demo');
	 if (nCode=0) or (nCode=2) then begin					{ submited or ignored }
		  Result := true;									{ continue uninstall setup	  }
	 end;
	// Unload the extension, otherwise it will not be deleted by the uninstaller
	UnloadDLL(ExpandConstant('{app}\IssSurvey.dll'));
end;

4. Set sReasons from the above code with your own reasons list (separate multiple reasons with semicolon). If sReasons is empty the reasons template combo box will be removed.

5. Compile and test your setup. Before Inno will begin uninstall operation IssSurvey will popup with a window asking the user if he wants to give some feedback/comments. The user can choose to Ignore this and continue with the uninstall process or he can submit a quick comment/feedback before uninstalling.

Final Notes

In the above demo the user feedback will be sent to the author tested script: http://raz-soft.com/IssSurvey/IssSurvey_mail.php please replace this address with your own and also edit the script IssSurvey_mail.php so that it will send the feedback to your inbox and not his.

If you're testing with his demo script/setup please include your e-mail address in the survey text box and he will try to reply you the feedback/survey text received from IssSurvey. You can also test the setup with the second php script (located [here] ) The info you enter in the survey will be saved in a local file on the author server and it will also be listed if you access the script directly [here].

External links

Uninstall Survey for Inno Setup. Tha package contains IssSurvey.dll and an Inno Setup script example with server side scripts.

Personal tools
Ads: