1 #define AppName
= 'VapourSynth'
2 #define Version
= 'R17'
6 OutputBaseFilename
=vapoursynth_installer
8 InternalCompressLevel
=max
10 LZMAUseSeparateProcess
=yes
11 VersionInfoDescription
={#= AppName} {#= Version} Installer
14 AppVersion
={#= Version}
15 AppVerName
={#= AppName} {#= Version}
16 AppPublisher
=Fredrik Mellbin
17 AppPublisherURL
=http
://www
.vapoursynth
.com
/
18 AppSupportURL
=http
://www
.vapoursynth
.com
/
19 AppUpdatesURL
=http
://www
.vapoursynth
.com
/
20 VersionInfoVersion
=0.9.0.3
21 DefaultDirName
={pf}\VapourSynth
22 DefaultGroupName
=VapourSynth
23 AllowCancelDuringInstall
=no
27 PrivilegesRequired
=poweruser
28 FlatComponentsList
=yes
31 Name
: Full; Description
: Full installation
34 Name
: Core
; Description
: {#= AppName} {#= Version}; Types
: Full; Flags
: fixed
37 Name
: newvpyfile
; Description
: "Add 'New VapourSynth Python Script' option to shell context menu"; GroupDescription
: "New File Shortcuts:"
38 Name
: registervsfs
; Description
: "Register the VSFS handler"; GroupDescription
: "Pismo File Mount:"
42 Source
: vapoursynth
.dll
; DestDir
: {code:GetPythonPath}; Flags
: ignoreversion uninsrestartdelete restartreplace
43 Source
: vapoursynth
.dll
; DestDir
: {app}\core
; Flags
: ignoreversion uninsrestartdelete restartreplace
44 Source
: vapoursynth
.pyd
; DestDir
: {code:GetPythonPath}; Flags
: ignoreversion uninsrestartdelete restartreplace
45 Source
: QtCore4
.dll
; DestDir
: {code:GetPythonPath}; Flags
: ignoreversion uninsrestartdelete restartreplace
46 Source
: QtCore4
.dll
; DestDir
: {app}\core
; Flags
: ignoreversion uninsrestartdelete restartreplace
47 Source
: vsfs
.dll
; DestDir
: {app}\core
; Flags
: ignoreversion uninsrestartdelete restartreplace
48 Source
: template
.vpy
; DestDir
: {app}; Flags
: ignoreversion uninsrestartdelete restartreplace
49 Source
: vsvfw
.dll
; DestDir
: {sys}; Flags
: ignoreversion uninsrestartdelete restartreplace
51 Source
: msvcr100
.dll
; DestDir
: {sys}; Flags
: restartreplace uninsneveruninstall sharedfile
52 Source
: msvcp100
.dll
; DestDir
: {sys}; Flags
: restartreplace uninsneveruninstall sharedfile
54 Source
: ..\include\VapourSynth
.h
; DestDir
: {app}\sdk\include
; Flags
: ignoreversion uninsrestartdelete restartreplace
55 Source
: ..\include\VSHelper
.h
; DestDir
: {app}\sdk\include
; Flags
: ignoreversion uninsrestartdelete restartreplace
56 Source
: ..\sdk
\filter_skeleton
.c
; DestDir
: {app}\sdk\examples
; Flags
: ignoreversion uninsrestartdelete restartreplace
57 Source
: ..\sdk\invert_example
.c
; DestDir
: {app}\sdk\examples
; Flags
: ignoreversion uninsrestartdelete restartreplace
59 Source
: filters
\avisource
.dll
; DestDir
: {app}\filters
; Flags
: ignoreversion uninsrestartdelete restartreplace
60 Source
: filters
\vivtc
.dll
; DestDir
: {app}\filters
; Flags
: ignoreversion uninsrestartdelete restartreplace
61 Source
: filters\eedi3
.dll
; DestDir
: {app}\filters
; Flags
: ignoreversion uninsrestartdelete restartreplace
62 Source
: filters
\temporalsoften
.dll
; DestDir
: {app}\filters
; Flags
: ignoreversion uninsrestartdelete restartreplace
63 Source
: filters\histogram
.dll
; DestDir
: {app}\filters
; Flags
: ignoreversion uninsrestartdelete restartreplace
67 Name
: {group}\VapourSynth Website
; Filename
: http
://www
.vapoursynth
.com
/
68 Name
: {group}\Documentation
; Filename
: http
://www
.vapoursynth
.com
/doc
/
69 Name
: {group}\Bundled Filters
; Filename
: {app}\filters
70 Name
: {group}\VapourSynth SDK
; Filename
: {app}\sdk
73 Root
: HKLM
; Subkey
: SOFTWARE\Classes\CLSID\
{{58F74CA0-BD0E-4664-A49B-8D10E6F0C131}; ValueType
: string; ValueName
: ""; ValueData
: "VapourSynth"; Flags
: uninsdeletevalue uninsdeletekeyifempty
74 Root
: HKLM
; Subkey
: SOFTWARE\Classes\CLSID\
{{58F74CA0-BD0E-4664-A49B-8D10E6F0C131}\InProcServer32
; ValueType
: string; ValueName
: ""; ValueData
: "vsvfw.dll"; Flags
: uninsdeletevalue uninsdeletekeyifempty
75 Root
: HKLM
; Subkey
: SOFTWARE\Classes\CLSID\
{{58F74CA0-BD0E-4664-A49B-8D10E6F0C131}\InProcServer32
; ValueType
: string; ValueName
: "ThreadingModel"; ValueData
: "Apartment"; Flags
: uninsdeletevalue uninsdeletekeyifempty
76 Root
: HKLM
; Subkey
: SOFTWARE\Classes\Media
Type\Extensions\
.vpy
; ValueType
: string; ValueName
: ""; ValueData
: ""; Flags
: uninsdeletevalue uninsdeletekeyifempty
77 Root
: HKLM
; Subkey
: SOFTWARE\Classes\Media
Type\Extensions\
.vpy
; ValueType
: string; ValueName
: "Source Filter"; ValueData
: "{{D3588AB0-0781-11CE-B03A-0020AF0BA770}"; Flags
: uninsdeletevalue uninsdeletekeyifempty
78 Root
: HKLM
; Subkey
: SOFTWARE\Classes\
.vpy
; ValueType
: string; ValueName
: ""; ValueData
: "vsfile"; Flags
: uninsdeletevalue uninsdeletekeyifempty
79 Root
: HKLM
; Subkey
: SOFTWARE\Classes
\vsfile
; ValueType
: string; ValueName
: ""; ValueData
: "VapourSynth Python Script"; Flags
: uninsdeletevalue uninsdeletekeyifempty
80 Root
: HKLM
; Subkey
: SOFTWARE\Classes
\vsfile\DefaultIcon
; ValueType
: string; ValueName
: ""; ValueData
: "vsvfw.dll,0"; Flags
: uninsdeletevalue uninsdeletekeyifempty
81 Root
: HKLM
; Subkey
: SOFTWARE\Classes\AVIFile\Extensions\VPY
; ValueType
: string; ValueName
: ""; ValueData
: "{{58F74CA0-BD0E-4664-A49B-8D10E6F0C131}"; Flags
: uninsdeletevalue uninsdeletekeyifempty
82 Root
: HKLM
; Subkey
: SOFTWARE\Classes\
.vpy\ShellNew
; ValueType
: string; ValueName
: "FileName"; ValueData
: "{app}\template.vpy"; Flags
: uninsdeletevalue uninsdeletekeyifempty; Tasks
: newvpyfile
85 Filename
: "{win}\pfm.exe"; Parameters
: "register ""{app}\core\vsfs.dll"""; Tasks
: registervsfs
; Flags
: skipifdoesntexist
88 Filename
: "{win}\pfm.exe"; Parameters
: "unregister ""{app}\core\vsfs.dll"""; Tasks
: registervsfs
; Flags
: skipifdoesntexist
92 var PythonPath
: string;
94 function InitializeSetup(): Boolean;
96 Result
:= RegQueryStringValue(HKCU
, 'SOFTWARE\Python\PythonCore\3.3\InstallPath', '', PythonPath
);
99 Result
:= RegQueryStringValue(HKLM
, 'SOFTWARE\Python\PythonCore\3.3\InstallPath', '', PythonPath
);
101 MsgBox('Python 3.3 installation not found.', mbCriticalError
, MB_OK
);
105 function GetPythonPath(Param
: String): String;
107 Result
:= PythonPath
+ '\Lib\site-packages';
110 // copied from the internets
112 /////////////////////////////////////////////////////////////////////
113 function GetUninstallString(): String;
116 sUnInstallString
: String;
118 sUnInstPath
:= ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppId")}_is1');
119 sUnInstallString
:= '';
120 if not RegQueryStringValue(HKLM
, sUnInstPath
, 'UninstallString', sUnInstallString
) then
121 RegQueryStringValue(HKCU
, sUnInstPath
, 'UninstallString', sUnInstallString
);
122 Result
:= sUnInstallString
;
126 /////////////////////////////////////////////////////////////////////
127 function IsUpgrade(): Boolean;
129 Result
:= (GetUninstallString() <> '');
133 /////////////////////////////////////////////////////////////////////
134 function UnInstallOldVersion(): Integer;
136 sUnInstallString
: String;
137 iResultCode
: Integer;
140 // 1 - uninstall
string is empty
141 // 2 - error executing the UnInstallString
142 // 3 - successfully executed the UnInstallString
144 // default return value
147 // get the uninstall
string of the old app
148 sUnInstallString
:= GetUninstallString();
149 if sUnInstallString
<> '' then begin
150 sUnInstallString
:= RemoveQuotes(sUnInstallString
);
151 if Exec(sUnInstallString
, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE
, ewWaitUntilTerminated
, iResultCode
) then
159 /////////////////////////////////////////////////////////////////////
160 procedure CurStepChanged(CurStep
: TSetupStep
);
162 if (CurStep
=ssInstall
) then
164 if (IsUpgrade()) then
166 UnInstallOldVersion();