Uninstall Survey for Inno Setup
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.
Features:
- easy to use
- small size (only 25KB)
- multi-language support (text infos 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
- 100% free
How do I get it to work with Inno?
1. Download Uninstall Survey for Inno Setup (IssSurvey.dll and Inno script demo with server side scripts included in the download package)
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:
1 2 3 4 5 6 | [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 below code in your [Code] section script (you ca modify it as you like):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | [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.
Note: in the above demo the user feedback will be sent to my 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 mine.
If you’re testing with my demo script/setup please include your e-mail address in the survey text box and I will 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 my server and it will also be listed if you access the script directly here .
Download
Who’s Using IssSurvey?
- Portfolio Manager - Personal stock portfolio management system
- Handy CD Ripper
- ZGuideTV
- ConvertVid
- Audio Transcoder
( If you are you using Iss Survey and want to be listed here please let me know! )
Donate
Download
Report


Edwin
Good extension! I’m surprised that why no comments left here?!
Raz
Hi Edwin and thanks for your feedback, not sure why no comments left here, they are “talking” on forums/mails but no feedback here from users
Ivan
Raz, many thanks for this plugin.
It’s helped me to save my time for other things.
Raz
Hi Ivan,
Thanks for your feedback and for letting me know about the extension packer issues. Extension has been updated, it’s not packed anymore. Re-download IssSurvey from the above link if necessary.
Ruslan
Hi, Răzvan, thank you for the extension.
I have an issue with it on 64bit Vista -
in the select box it shows something like
The product has too many errorsbx1IGNL
instead of
The product has too many errors
or sometimes the uninstall crashes.
I suppose it is related to the 64bit OS.
Raz
Hi Ruslan,
Extension updated, vista issues fixed, please re-download the IssSurvey from the above link and let me know if it works on your side.
Thank you.
Alexei Vinidiktov
I’ve tried to post a comment twice, but it didn’t appear here.
I’m having trouble with Cyrillic characters in the email sent by the server side script. They get garbled.
If you have any pointers, I’d appreciate your help.
Thanks.
Raz
Hi Alexei,
IssSurvey has some troubles encoding Cyrillic characters, I’ll fix this issue asap. Give me some time.
Thanks for your feedback.
Ruslan
Hi, Răzvan
It works wonderful, thank you!
Ivan Moiseev
Hi all.
I’ve figured out how to receive non latin characters.
you can change server script to include two versions of user input.
First version - raw message without using base64_decode function.
The second version - base64 decoded string.
I’ve tested server script and noticed, that base64_decode works for latin characters only. If we sent cyrillic the message is not base64 encoded and we should not use base64_decode function.
I hope this is helpful.
Raz
Hi Ivan Moiseev,
Thank you so much for your feedback on this issue, didn’t get much free time for this issue but it looks like some changes in the server side script should do the trick.
Thanks again and sorry for the delay reply.
@Ruslan thank you for your feedback, if you are using Iss Survey and want to be listed in the above “Who’s Using IssSurvey?” list please let me know.
Mikhail
Good day!
Really nice plugin. Thank you!
What about other feedback ability such install time, count of application launching, errors, remote ip address, etc?
Some from thereof is possible via text file in programm directory. Application may collect such information and then it will be posted to server during uninstall?
Of course some information can be private then seems we need some GUI element in uninstaller…
Thank you!
Theo
Hi Raz,
I tried the IssSurvey plugin and there were some things I liked as well as some rough edges. Here are some suggestions. Woudl have liked to make these changes myself, but the source code is not available.
1. Default reeason option right now is the first entry in the sReasons string. Can you add a entry before all options, so that you know when the user accidentally presses submit?
2. In the comments area you have a text saying that users should consider adding their email. How about making that text light gray and make it dissapear when you start typing into the field, like in Vista fields?
3. While on that subject, why not have a separate email field, marked as optional?
Thank you!
Theo
Somehow some parts are missing in my comment above. For #1 wanted to say that the drop down reasons box needs a automatic default entry, something like Please select one to figure out when the user has not really filled in a reason but has pressed submit.
Steven Sproat
This is awesome, very much appreciated. Thanks!
Rensy
In the description it says “Please help us improve our product by telling us why you chose to uninstall My Application.”
Where does “My Application” get read in from and how can I change it to my application name?
Raz
See and include IssSurvey.ini if you need custom text or other language.
Alex
Raz,
It seems to be very nice tool.
I have windows hosting (I am using ASP.NET, so I can’t use php.
Do you have any solution for that?
Thanks,
Alex.
Raz
Hi Alex,
You don’t have to use a specific server side script like php (i just used php for the demo), you can replace the server link inside Inno with your server page link that will handle the POST’s. IssSurvey acts like a browser, making a POST with variables on the server link. Variables names sent by post are: name,pass and cntinfo (comments - base64 encoded string)
Alex
Hi Raz,
Do you use query string?
Like:
http://www.mysite.com/script.aspx?name=demo&pass=demo&cntinfo=XXXYYYZZZ
Raz
No, you need to use Request.Form["variable"] to get the POST fields.
In asp.net Request.QueryString["page"] will get the page url parameter and Request.Form["variable"] will get POST fields.
Good luck.
John
When I run uninstall I’ve got the following message:
“488:92″
“Connection Error”
My internet connection is OK and I can access the form vith Internet Explorer.
Any ideas?
Raz
That looks like an invalid server certificate…The security certificate on the server may be invalid? Try to set a http server, or a different https address; didn’t fully tested on https servers…
John
Raz,
I tried also with your server:
http://raz-soft.com/IssSurvey/IssSurvey_mail.php
Same result
John
Great,
it worked.
I think that I had some problems with PC.
I uninstalled Visual Studio and now it works.
Thank you Raz.