Использовать trialpay для получение дополнительного дохода – хорошая идея, а предлагать пользователям получить программу бесплатно перед uninstall’ом просто замечательная 🙂
Итак будем добавлять поддержку trialpay в наш анинсталлер, я пользуюсь NSIS, соответственно код для него. Создаем специальную страницу под это дело, я использовал HM NIS Edit IO designer для визуального конструирования, в итоге получился вот такой вот файл UninstallTrialPay.ini
[Settings]
NumFields=2
[Field 1]
Type=Label
Text=Because of our partnership with TrialPay, you can now get the fully-licensed version of Clipdiary, a $19.95 value, for free simply by trying or buying a product from one of our trusted partners.\r\n\r\nThat means you'll continue to enjoy all Clipdiary feature for Free!\r\n\r\n\r\nWith offers from trusted names such as eBay, Blockbuster, Stamps.com, and 100+ others, we're sure you'll find something you like!
Left=0
Right=300
Top=0
Bottom=112
[Field 2]
Type=Button
Text=Get it FREE now!
Flags=NOTIFY
Left=139
Right=284
Top=115
Bottom=138
Теперь добавляем его в основной скрипт,
!insertmacro MUI_PAGE_FINISH
;;; From here!
; Uninstaller pages
ReserveFile "UninstallTrialPay.ini"
;!insertmacro MUI_UNPAGE_CONFIRM
UninstPage custom un.PageUninstallTrialPay un.LeavePageUninstallTrialPay
!insertmacro MUI_UNPAGE_INSTFILES
;;; to here!
; Language files
!insertmacro MUI_LANGUAGE "English"
Дальше…
Function un.onInit
…
;;; This line
!insertmacro MUI_INSTALLOPTIONS_EXTRACT "UninstallTrialPay.ini"[/b]
...
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components?" /SD IDYES IDYES +2
Abort
FunctionEnd
Ну и наконец две основные функции
!insertmacro MUI_HEADER_TEXT "Don't go yet! Get Clipdiary for FREE!" ""
; !insertmacro MUI_INSTALLOPTIONS_DISPLAY "UninstallTrialPay.ini"
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "UninstallTrialPay.ini"
Pop $HWND ;HWND of dialog
!insertmacro MUI_INSTALLOPTIONS_READ $DLGITEM "UninstallTrialPay.ini" "Field 1" "HWND"
;$DLGITEM contains the HWND of the first field
CreateFont $FONT "Tahoma" 10 700
SendMessage $DLGITEM ${WM_SETFONT} $FONT 0
!insertmacro MUI_INSTALLOPTIONS_READ $DLGITEM "UninstallTrialPay.ini" "Field 2" "HWND"
SendMessage $DLGITEM ${WM_SETFONT} $FONT 0
!insertmacro MUI_INSTALLOPTIONS_SHOW
FunctionEnd
Function un.LeavePageUninstallTrialPay
; At this point the user has either pressed Next or one of our custom buttons
; We find out which by reading from the INI file
ReadINIStr $0 "$PLUGINSDIR\UninstallTrialPay.ini" "Settings" "State"
StrCmp $0 0 done ; Next button?
StrCmp $0 2 openurl ; "Install support for X"?
; Abort ; Return to the page
openurl:
ExecShell "" "http://clipdiary.com/free-clipboard-manager.php?s=untrialpay"
Abort ; Return to the page
done:
FunctionEnd
Ну вот, вроде ничего не забыл. И пусть вам придет больше лишних денег 🙂