From ecf971b0da87950a16e0e759020acedae63abcc3 Mon Sep 17 00:00:00 2001 From: RKrom Date: Sun, 17 Jul 2011 12:16:30 +0000 Subject: [PATCH] Deleting some stuff we don't need git-svn-id: http://svn.code.sf.net/p/greenshot/code/trunk@1283 7dccd23d-a4a3-4e1f-8c07-b4c1b4018ab4 --- Greenshot/tools/innosetup/Examples/64Bit.iss | 32 -- .../innosetup/Examples/64BitThreeArch.iss | 48 --- .../tools/innosetup/Examples/64BitTwoArch.iss | 34 -- .../innosetup/Examples/CodeAutomation.iss | 310 --------------- .../innosetup/Examples/CodeAutomation2.iss | 298 --------------- .../tools/innosetup/Examples/CodeClasses.iss | 361 ------------------ .../tools/innosetup/Examples/CodeDlg.iss | 204 ---------- .../tools/innosetup/Examples/CodeDll.iss | 72 ---- .../tools/innosetup/Examples/CodeExample1.iss | 149 -------- .../Examples/CodePrepareToInstall.iss | 117 ------ .../tools/innosetup/Examples/Components.iss | 33 -- .../tools/innosetup/Examples/Example1.iss | 22 -- .../tools/innosetup/Examples/Example2.iss | 24 -- .../tools/innosetup/Examples/Example3.iss | 35 -- .../tools/innosetup/Examples/ISPPExample1.iss | 44 --- .../Examples/ISPPExample1License.txt | 4 - .../tools/innosetup/Examples/Languages.iss | 59 --- Greenshot/tools/innosetup/Examples/MyDll.dll | Bin 7680 -> 0 bytes .../tools/innosetup/Examples/MyDll/C/MyDll.c | 6 - .../innosetup/Examples/MyDll/C/MyDll.def | 2 - .../innosetup/Examples/MyDll/C/MyDll.dsp | 76 ---- .../innosetup/Examples/MyDll/Delphi/MyDll.dpr | 14 - .../tools/innosetup/Examples/MyProg-IA64.exe | Bin 5632 -> 0 bytes .../tools/innosetup/Examples/MyProg-x64.exe | Bin 5632 -> 0 bytes Greenshot/tools/innosetup/Examples/MyProg.chm | Bin 12503 -> 0 bytes Greenshot/tools/innosetup/Examples/MyProg.exe | Bin 5120 -> 0 bytes .../tools/innosetup/Examples/Readme-Dutch.txt | 1 - .../innosetup/Examples/Readme-German.txt | 1 - Greenshot/tools/innosetup/Examples/Readme.txt | 1 - .../Examples/UninstallCodeExample1.iss | 45 --- 30 files changed, 1992 deletions(-) delete mode 100644 Greenshot/tools/innosetup/Examples/64Bit.iss delete mode 100644 Greenshot/tools/innosetup/Examples/64BitThreeArch.iss delete mode 100644 Greenshot/tools/innosetup/Examples/64BitTwoArch.iss delete mode 100644 Greenshot/tools/innosetup/Examples/CodeAutomation.iss delete mode 100644 Greenshot/tools/innosetup/Examples/CodeAutomation2.iss delete mode 100644 Greenshot/tools/innosetup/Examples/CodeClasses.iss delete mode 100644 Greenshot/tools/innosetup/Examples/CodeDlg.iss delete mode 100644 Greenshot/tools/innosetup/Examples/CodeDll.iss delete mode 100644 Greenshot/tools/innosetup/Examples/CodeExample1.iss delete mode 100644 Greenshot/tools/innosetup/Examples/CodePrepareToInstall.iss delete mode 100644 Greenshot/tools/innosetup/Examples/Components.iss delete mode 100644 Greenshot/tools/innosetup/Examples/Example1.iss delete mode 100644 Greenshot/tools/innosetup/Examples/Example2.iss delete mode 100644 Greenshot/tools/innosetup/Examples/Example3.iss delete mode 100644 Greenshot/tools/innosetup/Examples/ISPPExample1.iss delete mode 100644 Greenshot/tools/innosetup/Examples/ISPPExample1License.txt delete mode 100644 Greenshot/tools/innosetup/Examples/Languages.iss delete mode 100644 Greenshot/tools/innosetup/Examples/MyDll.dll delete mode 100644 Greenshot/tools/innosetup/Examples/MyDll/C/MyDll.c delete mode 100644 Greenshot/tools/innosetup/Examples/MyDll/C/MyDll.def delete mode 100644 Greenshot/tools/innosetup/Examples/MyDll/C/MyDll.dsp delete mode 100644 Greenshot/tools/innosetup/Examples/MyDll/Delphi/MyDll.dpr delete mode 100644 Greenshot/tools/innosetup/Examples/MyProg-IA64.exe delete mode 100644 Greenshot/tools/innosetup/Examples/MyProg-x64.exe delete mode 100644 Greenshot/tools/innosetup/Examples/MyProg.chm delete mode 100644 Greenshot/tools/innosetup/Examples/MyProg.exe delete mode 100644 Greenshot/tools/innosetup/Examples/Readme-Dutch.txt delete mode 100644 Greenshot/tools/innosetup/Examples/Readme-German.txt delete mode 100644 Greenshot/tools/innosetup/Examples/Readme.txt delete mode 100644 Greenshot/tools/innosetup/Examples/UninstallCodeExample1.iss diff --git a/Greenshot/tools/innosetup/Examples/64Bit.iss b/Greenshot/tools/innosetup/Examples/64Bit.iss deleted file mode 100644 index 824fdaba5..000000000 --- a/Greenshot/tools/innosetup/Examples/64Bit.iss +++ /dev/null @@ -1,32 +0,0 @@ -; -- 64Bit.iss -- -; Demonstrates installation of a program built for the x64 (a.k.a. AMD64) -; architecture. -; To successfully run this installation and the program it installs, -; you must have the "x64" edition of Windows XP or Windows Server 2003. - -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! - -[Setup] -AppName=My Program -AppVersion=1.5 -DefaultDirName={pf}\My Program -DefaultGroupName=My Program -UninstallDisplayIcon={app}\MyProg.exe -Compression=lzma2 -SolidCompression=yes -OutputDir=userdocs:Inno Setup Examples Output -; "ArchitecturesAllowed=x64" specifies that Setup cannot run on -; anything but x64. -ArchitecturesAllowed=x64 -; "ArchitecturesInstallIn64BitMode=x64" requests that the install be -; done in "64-bit mode" on x64, meaning it should use the native -; 64-bit Program Files directory and the 64-bit view of the registry. -ArchitecturesInstallIn64BitMode=x64 - -[Files] -Source: "MyProg-x64.exe"; DestDir: "{app}"; DestName: "MyProg.exe" -Source: "MyProg.chm"; DestDir: "{app}" -Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme - -[Icons] -Name: "{group}\My Program"; Filename: "{app}\MyProg.exe" diff --git a/Greenshot/tools/innosetup/Examples/64BitThreeArch.iss b/Greenshot/tools/innosetup/Examples/64BitThreeArch.iss deleted file mode 100644 index 59bee0fee..000000000 --- a/Greenshot/tools/innosetup/Examples/64BitThreeArch.iss +++ /dev/null @@ -1,48 +0,0 @@ -; -- 64BitThreeArch.iss -- -; Demonstrates how to install a program built for three different -; architectures (x86, x64, Itanium) using a single installer. - -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! - -[Setup] -AppName=My Program -AppVersion=1.5 -DefaultDirName={pf}\My Program -DefaultGroupName=My Program -UninstallDisplayIcon={app}\MyProg.exe -Compression=lzma2 -SolidCompression=yes -OutputDir=userdocs:Inno Setup Examples Output -; "ArchitecturesInstallIn64BitMode=x64 ia64" requests that the install -; be done in "64-bit mode" on x64 & Itanium, meaning it should use the -; native 64-bit Program Files directory and the 64-bit view of the -; registry. On all other architectures it will install in "32-bit mode". -ArchitecturesInstallIn64BitMode=x64 ia64 - -[Files] -; Install MyProg-x64.exe if running on x64, MyProg-IA64.exe if -; running on Itanium, MyProg.exe otherwise. -Source: "MyProg-x64.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: IsX64 -Source: "MyProg-IA64.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: IsIA64 -Source: "MyProg.exe"; DestDir: "{app}"; Check: IsOtherArch -Source: "MyProg.chm"; DestDir: "{app}" -Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme - -[Icons] -Name: "{group}\My Program"; Filename: "{app}\MyProg.exe" - -[Code] -function IsX64: Boolean; -begin - Result := Is64BitInstallMode and (ProcessorArchitecture = paX64); -end; - -function IsIA64: Boolean; -begin - Result := Is64BitInstallMode and (ProcessorArchitecture = paIA64); -end; - -function IsOtherArch: Boolean; -begin - Result := not IsX64 and not IsIA64; -end; diff --git a/Greenshot/tools/innosetup/Examples/64BitTwoArch.iss b/Greenshot/tools/innosetup/Examples/64BitTwoArch.iss deleted file mode 100644 index 30606a802..000000000 --- a/Greenshot/tools/innosetup/Examples/64BitTwoArch.iss +++ /dev/null @@ -1,34 +0,0 @@ -; -- 64BitTwoArch.iss -- -; Demonstrates how to install a program built for two different -; architectures (x86 and x64) using a single installer. - -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! - -[Setup] -AppName=My Program -AppVersion=1.5 -DefaultDirName={pf}\My Program -DefaultGroupName=My Program -UninstallDisplayIcon={app}\MyProg.exe -Compression=lzma2 -SolidCompression=yes -OutputDir=userdocs:Inno Setup Examples Output -; "ArchitecturesInstallIn64BitMode=x64" requests that the install be -; done in "64-bit mode" on x64, meaning it should use the native -; 64-bit Program Files directory and the 64-bit view of the registry. -; On all other architectures it will install in "32-bit mode". -ArchitecturesInstallIn64BitMode=x64 -; Note: We don't set ProcessorsAllowed because we want this -; installation to run on all architectures (including Itanium, -; since it's capable of running 32-bit code too). - -[Files] -; Install MyProg-x64.exe if running in 64-bit mode (x64; see above), -; MyProg.exe otherwise. -Source: "MyProg-x64.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: Is64BitInstallMode -Source: "MyProg.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode -Source: "MyProg.chm"; DestDir: "{app}" -Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme - -[Icons] -Name: "{group}\My Program"; Filename: "{app}\MyProg.exe" diff --git a/Greenshot/tools/innosetup/Examples/CodeAutomation.iss b/Greenshot/tools/innosetup/Examples/CodeAutomation.iss deleted file mode 100644 index 09856341b..000000000 --- a/Greenshot/tools/innosetup/Examples/CodeAutomation.iss +++ /dev/null @@ -1,310 +0,0 @@ -; -- CodeAutomation.iss -- -; -; This script shows how to use IDispatch based COM Automation objects. - -[Setup] -AppName=My Program -AppVersion=1.5 -CreateAppDir=no -DisableProgramGroupPage=yes -DefaultGroupName=My Program -UninstallDisplayIcon={app}\MyProg.exe -OutputDir=userdocs:Inno Setup Examples Output - -[Code] - -{--- SQLDMO ---} - -const - SQLServerName = 'localhost'; - SQLDMOGrowth_MB = 0; - -procedure SQLDMOButtonOnClick(Sender: TObject); -var - SQLServer, Database, DBFile, LogFile: Variant; - IDColumn, NameColumn, Table: Variant; -begin - if MsgBox('Setup will now connect to Microsoft SQL Server ''' + SQLServerName + ''' via a trusted connection and create a database. Do you want to continue?', mbInformation, mb_YesNo) = idNo then - Exit; - - { Create the main SQLDMO COM Automation object } - - try - SQLServer := CreateOleObject('SQLDMO.SQLServer'); - except - RaiseException('Please install Microsoft SQL server connectivity tools first.'#13#13'(Error ''' + GetExceptionMessage + ''' occurred)'); - end; - - { Connect to the Microsoft SQL Server } - - SQLServer.LoginSecure := True; - SQLServer.Connect(SQLServerName); - - MsgBox('Connected to Microsoft SQL Server ''' + SQLServerName + '''.', mbInformation, mb_Ok); - - { Setup a database } - - Database := CreateOleObject('SQLDMO.Database'); - Database.Name := 'Inno Setup'; - - DBFile := CreateOleObject('SQLDMO.DBFile'); - DBFile.Name := 'ISData1'; - DBFile.PhysicalName := 'c:\program files\microsoft sql server\mssql\data\IS.mdf'; - DBFile.PrimaryFile := True; - DBFile.FileGrowthType := SQLDMOGrowth_MB; - DBFile.FileGrowth := 1; - - Database.FileGroups.Item('PRIMARY').DBFiles.Add(DBFile); - - LogFile := CreateOleObject('SQLDMO.LogFile'); - LogFile.Name := 'ISLog1'; - LogFile.PhysicalName := 'c:\program files\microsoft sql server\mssql\data\IS.ldf'; - - Database.TransactionLog.LogFiles.Add(LogFile); - - { Add the database } - - SQLServer.Databases.Add(Database); - - MsgBox('Added database ''' + Database.Name + '''.', mbInformation, mb_Ok); - - { Setup some columns } - - IDColumn := CreateOleObject('SQLDMO.Column'); - IDColumn.Name := 'id'; - IDColumn.Datatype := 'int'; - IDColumn.Identity := True; - IDColumn.IdentityIncrement := 1; - IDColumn.IdentitySeed := 1; - IDColumn.AllowNulls := False; - - NameColumn := CreateOleObject('SQLDMO.Column'); - NameColumn.Name := 'name'; - NameColumn.Datatype := 'varchar'; - NameColumn.Length := '64'; - NameColumn.AllowNulls := False; - - { Setup a table } - - Table := CreateOleObject('SQLDMO.Table'); - Table.Name := 'authors'; - Table.FileGroup := 'PRIMARY'; - - { Add the columns and the table } - - Table.Columns.Add(IDColumn); - Table.Columns.Add(NameColumn); - - Database.Tables.Add(Table); - - MsgBox('Added table ''' + Table.Name + '''.', mbInformation, mb_Ok); -end; - -{--- IIS ---} - -const - IISServerName = 'localhost'; - IISServerNumber = '1'; - IISURL = 'http://127.0.0.1'; - -procedure IISButtonOnClick(Sender: TObject); -var - IIS, WebSite, WebServer, WebRoot, VDir: Variant; - ErrorCode: Integer; -begin - if MsgBox('Setup will now connect to Microsoft IIS Server ''' + IISServerName + ''' and create a virtual directory. Do you want to continue?', mbInformation, mb_YesNo) = idNo then - Exit; - - { Create the main IIS COM Automation object } - - try - IIS := CreateOleObject('IISNamespace'); - except - RaiseException('Please install Microsoft IIS first.'#13#13'(Error ''' + GetExceptionMessage + ''' occurred)'); - end; - - { Connect to the IIS server } - - WebSite := IIS.GetObject('IIsWebService', IISServerName + '/w3svc'); - WebServer := WebSite.GetObject('IIsWebServer', IISServerNumber); - WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root'); - - { (Re)create a virtual dir } - - try - WebRoot.Delete('IIsWebVirtualDir', 'innosetup'); - WebRoot.SetInfo(); - except - end; - - VDir := WebRoot.Create('IIsWebVirtualDir', 'innosetup'); - VDir.AccessRead := True; - VDir.AppFriendlyName := 'Inno Setup'; - VDir.Path := 'C:\inetpub\innosetup'; - VDir.AppCreate(True); - VDir.SetInfo(); - - MsgBox('Created virtual directory ''' + VDir.Path + '''.', mbInformation, mb_Ok); - - { Write some html and display it } - - if MsgBox('Setup will now write some HTML and display the virtual directory. Do you want to continue?', mbInformation, mb_YesNo) = idNo then - Exit; - - ForceDirectories(VDir.Path); - SaveStringToFile(VDir.Path + '/index.htm', 'Inno Setup rocks!', False); - if not ShellExecAsOriginalUser('open', IISURL + '/innosetup/index.htm', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode) then - MsgBox('Can''t display the created virtual directory: ''' + SysErrorMessage(ErrorCode) + '''.', mbError, mb_Ok); -end; - -{--- MSXML ---} - -const - XMLURL = 'http://cvs.jrsoftware.org/view/*checkout*/ishelp/isxfunc.xml'; - XMLFileName = 'isxfunc.xml'; - XMLFileName2 = 'isxfuncmodified.xml'; - -procedure MSXMLButtonOnClick(Sender: TObject); -var - XMLHTTP, XMLDoc, NewNode, RootNode: Variant; - Path: String; -begin - if MsgBox('Setup will now use MSXML to download XML file ''' + XMLURL + ''' and save it to disk.'#13#13'Setup will then load, modify and save this XML file. Do you want to continue?', mbInformation, mb_YesNo) = idNo then - Exit; - - { Create the main MSXML COM Automation object } - - try - XMLHTTP := CreateOleObject('MSXML2.ServerXMLHTTP'); - except - RaiseException('Please install MSXML first.'#13#13'(Error ''' + GetExceptionMessage + ''' occurred)'); - end; - - { Download the XML file } - - XMLHTTP.Open('GET', XMLURL, False); - XMLHTTP.Send(); - - Path := ExpandConstant('{src}\'); - XMLHTTP.responseXML.Save(Path + XMLFileName); - - MsgBox('Downloaded the XML file and saved it as ''' + XMLFileName + '''.', mbInformation, mb_Ok); - - { Load the XML File } - - XMLDoc := CreateOleObject('MSXML2.DOMDocument'); - XMLDoc.async := False; - XMLDoc.resolveExternals := False; - XMLDoc.load(Path + XMLFileName); - if XMLDoc.parseError.errorCode <> 0 then - RaiseException('Error on line ' + IntToStr(XMLDoc.parseError.line) + ', position ' + IntToStr(XMLDoc.parseError.linepos) + ': ' + XMLDoc.parseError.reason); - - MsgBox('Loaded the XML file.', mbInformation, mb_Ok); - - { Modify the XML document } - - NewNode := XMLDoc.createElement('isxdemo'); - RootNode := XMLDoc.documentElement; - RootNode.appendChild(NewNode); - RootNode.lastChild.text := 'Hello, World'; - - { Save the XML document } - - XMLDoc.Save(Path + XMLFileName2); - - MsgBox('Saved the modified XML as ''' + XMLFileName2 + '''.', mbInformation, mb_Ok); -end; - - -{--- Word ---} - -procedure WordButtonOnClick(Sender: TObject); -var - Word: Variant; -begin - if MsgBox('Setup will now check whether Microsoft Word is running. Do you want to continue?', mbInformation, mb_YesNo) = idNo then - Exit; - - { Try to get an active Word COM Automation object } - - try - Word := GetActiveOleObject('Word.Application'); - except - end; - - if VarIsEmpty(Word) then - MsgBox('Microsoft Word is not running.', mbInformation, mb_Ok) - else - MsgBox('Microsoft Word is running.', mbInformation, mb_Ok) -end; - -{--- Windows Firewall ---} - -const - NET_FW_IP_VERSION_ANY = 2; - NET_FW_SCOPE_ALL = 0; - -procedure FirewallButtonOnClick(Sender: TObject); -var - Firewall, Application: Variant; -begin - if MsgBox('Setup will now add itself to Windows Firewall as an authorized application for the current profile (' + GetUserNameString + '). Do you want to continue?', mbInformation, mb_YesNo) = idNo then - Exit; - - { Create the main Windows Firewall COM Automation object } - - try - Firewall := CreateOleObject('HNetCfg.FwMgr'); - except - RaiseException('Please install Windows Firewall first.'#13#13'(Error ''' + GetExceptionMessage + ''' occurred)'); - end; - - { Add the authorization } - - Application := CreateOleObject('HNetCfg.FwAuthorizedApplication'); - Application.Name := 'Setup'; - Application.IPVersion := NET_FW_IP_VERSION_ANY; - Application.ProcessImageFileName := ExpandConstant('{srcexe}'); - Application.Scope := NET_FW_SCOPE_ALL; - Application.Enabled := True; - - Firewall.LocalPolicy.CurrentProfile.AuthorizedApplications.Add(Application); - - MsgBox('Setup is now an authorized application for the current profile', mbInformation, mb_Ok); -end; - -{---} - -procedure CreateButton(ALeft, ATop: Integer; ACaption: String; ANotifyEvent: TNotifyEvent); -begin - with TButton.Create(WizardForm) do begin - Left := ALeft; - Top := ATop; - Width := WizardForm.CancelButton.Width; - Height := WizardForm.CancelButton.Height; - Caption := ACaption; - OnClick := ANotifyEvent; - Parent := WizardForm.WelcomePage; - end; -end; - -procedure InitializeWizard(); -var - Left, LeftInc, Top, TopInc: Integer; -begin - Left := WizardForm.WelcomeLabel2.Left; - LeftInc := WizardForm.CancelButton.Width + ScaleX(8); - TopInc := WizardForm.CancelButton.Height + ScaleY(8); - Top := WizardForm.WelcomeLabel2.Top + WizardForm.WelcomeLabel2.Height - 4*TopInc; - - CreateButton(Left, Top, '&SQLDMO...', @SQLDMOButtonOnClick); - CreateButton(Left + LeftInc, Top, '&Firewall...', @FirewallButtonOnClick); - Top := Top + TopInc; - CreateButton(Left, Top, '&IIS...', @IISButtonOnClick); - Top := Top + TopInc; - CreateButton(Left, Top, '&MSXML...', @MSXMLButtonOnClick); - Top := Top + TopInc; - CreateButton(Left, Top, '&Word...', @WordButtonOnClick); -end; - - diff --git a/Greenshot/tools/innosetup/Examples/CodeAutomation2.iss b/Greenshot/tools/innosetup/Examples/CodeAutomation2.iss deleted file mode 100644 index c6f87005f..000000000 --- a/Greenshot/tools/innosetup/Examples/CodeAutomation2.iss +++ /dev/null @@ -1,298 +0,0 @@ -; -- CodeAutomation2.iss -- -; -; This script shows how to use IUnknown based COM Automation objects. -; -; REQUIRES UNICODE INNO SETUP! -; -; Note: some unneeded interface functions which had special types have been replaced -; by dummies to avoid having to define those types. Do not remove these dummies as -; that would change the function indices which is bad. Also, not all function -; protoypes have been tested, only those used by this example. - -[Setup] -AppName=My Program -AppVersion=1.5 -CreateAppDir=no -DisableProgramGroupPage=yes -DefaultGroupName=My Program -UninstallDisplayIcon={app}\MyProg.exe -OutputDir=userdocs:Inno Setup Examples Output - -[Code] - -{--- IShellLink ---} - -const - CLSID_ShellLink = '{00021401-0000-0000-C000-000000000046}'; - -type - IShellLinkW = interface(IUnknown) - '{000214F9-0000-0000-C000-000000000046}' - procedure Dummy; - procedure Dummy2; - procedure Dummy3; - function GetDescription(pszName: String; cchMaxName: Integer): HResult; - function SetDescription(pszName: String): HResult; - function GetWorkingDirectory(pszDir: String; cchMaxPath: Integer): HResult; - function SetWorkingDirectory(pszDir: String): HResult; - function GetArguments(pszArgs: String; cchMaxPath: Integer): HResult; - function SetArguments(pszArgs: String): HResult; - function GetHotkey(var pwHotkey: Word): HResult; - function SetHotkey(wHotkey: Word): HResult; - function GetShowCmd(out piShowCmd: Integer): HResult; - function SetShowCmd(iShowCmd: Integer): HResult; - function GetIconLocation(pszIconPath: String; cchIconPath: Integer; - out piIcon: Integer): HResult; - function SetIconLocation(pszIconPath: String; iIcon: Integer): HResult; - function SetRelativePath(pszPathRel: String; dwReserved: DWORD): HResult; - function Resolve(Wnd: HWND; fFlags: DWORD): HResult; - function SetPath(pszFile: String): HResult; - end; - - IPersist = interface(IUnknown) - '{0000010C-0000-0000-C000-000000000046}' - function GetClassID(var classID: TGUID): HResult; - end; - - IPersistFile = interface(IPersist) - '{0000010B-0000-0000-C000-000000000046}' - function IsDirty: HResult; - function Load(pszFileName: String; dwMode: Longint): HResult; - function Save(pszFileName: String; fRemember: BOOL): HResult; - function SaveCompleted(pszFileName: String): HResult; - function GetCurFile(out pszFileName: String): HResult; - end; - -procedure IShellLinkButtonOnClick(Sender: TObject); -var - Obj: IUnknown; - SL: IShellLinkW; - PF: IPersistFile; -begin - { Create the main ShellLink COM Automation object } - Obj := CreateComObject(StringToGuid(CLSID_ShellLink)); - - { Set the shortcut properties } - SL := IShellLinkW(Obj); - OleCheck(SL.SetPath(ExpandConstant('{srcexe}'))); - OleCheck(SL.SetArguments('')); - OleCheck(SL.SetShowCmd(SW_SHOWNORMAL)); - - { Save the shortcut } - PF := IPersistFile(Obj); - OleCheck(PF.Save(ExpandConstant('{commondesktop}\CodeAutomation2 Test.lnk'), True)); - - MsgBox('Saved a shortcut named ''CodeAutomation2 Test'' on the common desktop.', mbInformation, mb_Ok); -end; - -{--- ITaskScheduler ---} - -const - CLSID_TaskScheduler = '{148BD52A-A2AB-11CE-B11F-00AA00530503}'; - CLSID_Task = '{148BD520-A2AB-11CE-B11F-00AA00530503}'; - IID_Task = '{148BD524-A2AB-11CE-B11F-00AA00530503}'; - TASK_TIME_TRIGGER_DAILY = 1; - -type - ITaskScheduler = interface(IUnknown) - '{148BD527-A2AB-11CE-B11F-00AA00530503}' - function SetTargetComputer(pwszComputer: String): HResult; - function GetTargetComputer(out ppwszComputer: String): HResult; - procedure Dummy; - function Activate(pwszName: String; var riid: TGUID; out ppUnk: IUnknown): HResult; - function Delete(pwszName: String): HResult; - function NewWorkItem(pwszTaskName: String; var rclsid: TGUID; var riid: TGUID; out ppUnk: IUnknown): HResult; - procedure Dummy2; - function IsOfType(pwszName: String; var riid: TGUID): HResult; - end; - - TDaily = record - DaysInterval: WORD; - end; - - TWeekly = record - WeeksInterval: WORD; - rgfDaysOfTheWeek: WORD; - end; - - TMonthyDate = record - rgfDays: DWORD; - rgfMonths: WORD; - end; - - TMonthlyDow = record - wWhichWeek: WORD; - rgfDaysOfTheWeek: WORD; - rgfMonths: WORD; - end; - - { ROPS doesn't support unions, replace this with the type you need and adjust padding (end size has to be 48). } - TTriggerTypeUnion = record - Daily: TDaily; - Pad1: WORD; - Pad2: WORD; - Pad3: WORD; - end; - - TTaskTrigger = record - cbTriggerSize: WORD; - Reserved1: WORD; - wBeginYear: WORD; - wBeginMonth: WORD; - wBeginDay: WORD; - wEndYear: WORD; - wEndMonth: WORD; - wEndDay: WORD; - wStartHour: WORD; - wStartMinute: WORD; - MinutesDuration: DWORD; - MinutesInterval: DWORD; - rgFlags: DWORD; - TriggerType: DWORD; - Type_: TTriggerTypeUnion; - Reserved2: WORD; - wRandomMinutesInterval: WORD; - end; - - ITaskTrigger = interface(IUnknown) - '{148BD52B-A2AB-11CE-B11F-00AA00530503}' - function SetTrigger(var pTrigger: TTaskTrigger): HResult; - function GetTrigger(var pTrigger: TTaskTrigger): HResult; - function GetTriggerString(var ppwszTrigger: String): HResult; - end; - - IScheduledWorkItem = interface(IUnknown) - '{A6B952F0-A4B1-11D0-997D-00AA006887EC}' - function CreateTrigger(out piNewTrigger: Word; out ppTrigger: ITaskTrigger): HResult; - function DeleteTrigger(iTrigger: Word): HResult; - function GetTriggerCount(out pwCount: Word): HResult; - function GetTrigger(iTrigger: Word; var ppTrigger: ITaskTrigger): HResult; - function GetTriggerString(iTrigger: Word; out ppwszTrigger: String): HResult; - procedure Dummy; - procedure Dummy2; - function SetIdleWait(wIdleMinutes: Word; wDeadlineMinutes: Word): HResult; - function GetIdleWait(out pwIdleMinutes: Word; out pwDeadlineMinutes: Word): HResult; - function Run: HResult; - function Terminate: HResult; - function EditWorkItem(hParent: HWND; dwReserved: DWORD): HResult; - procedure Dummy3; - function GetStatus(out phrStatus: HResult): HResult; - function GetExitCode(out pdwExitCode: DWORD): HResult; - function SetComment(pwszComment: String): HResult; - function GetComment(out ppwszComment: String): HResult; - function SetCreator(pwszCreator: String): HResult; - function GetCreator(out ppwszCreator: String): HResult; - function SetWorkItemData(cbData: Word; var rgbData: Byte): HResult; - function GetWorkItemData(out pcbData: Word; out prgbData: Byte): HResult; - function SetErrorRetryCount(wRetryCount: Word): HResult; - function GetErrorRetryCount(out pwRetryCount: Word): HResult; - function SetErrorRetryInterval(wRetryInterval: Word): HResult; - function GetErrorRetryInterval(out pwRetryInterval: Word): HResult; - function SetFlags(dwFlags: DWORD): HResult; - function GetFlags(out pdwFlags: DWORD): HResult; - function SetAccountInformation(pwszAccountName: String; pwszPassword: String): HResult; - function GetAccountInformation(out ppwszAccountName: String): HResult; - end; - - ITask = interface(IScheduledWorkItem) - '{148BD524-A2AB-11CE-B11F-00AA00530503}' - function SetApplicationName(pwszApplicationName: String): HResult; - function GetApplicationName(out ppwszApplicationName: String): HResult; - function SetParameters(pwszParameters: String): HResult; - function GetParameters(out ppwszParameters: String): HResult; - function SetWorkingDirectory(pwszWorkingDirectory: String): HResult; - function GetWorkingDirectory(out ppwszWorkingDirectory: String): HResult; - function SetPriority(dwPriority: DWORD): HResult; - function GetPriority(out pdwPriority: DWORD): HResult; - function SetTaskFlags(dwFlags: DWORD): HResult; - function GetTaskFlags(out pdwFlags: DWORD): HResult; - function SetMaxRunTime(dwMaxRunTimeMS: DWORD): HResult; - function GetMaxRunTime(out pdwMaxRunTimeMS: DWORD): HResult; - end; - - -procedure ITaskSchedulerButtonOnClick(Sender: TObject); -var - Obj, Obj2: IUnknown; - TaskScheduler: ITaskScheduler; - G1, G2: TGUID; - Task: ITask; - iNewTrigger: WORD; - TaskTrigger: ITaskTrigger; - TaskTrigger2: TTaskTrigger; - PF: IPersistFile; -begin - { Create the main TaskScheduler COM Automation object } - Obj := CreateComObject(StringToGuid(CLSID_TaskScheduler)); - - { Create the Task COM automation object } - TaskScheduler := ITaskScheduler(Obj); - G1 := StringToGuid(CLSID_Task); - G2 := StringToGuid(IID_Task); - //This will throw an exception if the task already exists - OleCheck(TaskScheduler.NewWorkItem('CodeAutomation2 Test', G1, G2, Obj2)); - - { Set the task properties } - Task := ITask(Obj2); - OleCheck(Task.SetComment('CodeAutomation2 Test Comment')); - OleCheck(Task.SetApplicationName(ExpandConstant('{srcexe}'))); - - { Set the task account information } - //Uncomment the following and provide actual user info to get a runnable task - //OleCheck(Task.SetAccountInformation('username', 'password')); - - { Create the TaskTrigger COM automation object } - OleCheck(Task.CreateTrigger(iNewTrigger, TaskTrigger)); - - { Set the task trigger properties } - with TaskTrigger2 do begin - cbTriggerSize := SizeOf(TaskTrigger2); - wBeginYear := 2009; - wBeginMonth := 10; - wBeginDay := 1; - wStartHour := 12; - TriggerType := TASK_TIME_TRIGGER_DAILY; - Type_.Daily.DaysInterval := 1; - end; - OleCheck(TaskTrigger.SetTrigger(TaskTrigger2)); - - { Save the task } - PF := IPersistFile(Obj2); - OleCheck(PF.Save('', True)); - - MsgBox('Created a daily task named named ''CodeAutomation2 Test''.' + #13#13 + 'Note: Account information not set so the task won''t actually run, uncomment the SetAccountInfo call and provide actual user info to get a runnable task.', mbInformation, mb_Ok); -end; - -{---} - -procedure CreateButton(ALeft, ATop: Integer; ACaption: String; ANotifyEvent: TNotifyEvent); -begin - with TButton.Create(WizardForm) do begin - Left := ALeft; - Top := ATop; - Width := (WizardForm.CancelButton.Width*3)/2; - Height := WizardForm.CancelButton.Height; - Caption := ACaption; - OnClick := ANotifyEvent; - Parent := WizardForm.WelcomePage; - end; -end; - -procedure InitializeWizard(); -var - Left, LeftInc, Top, TopInc: Integer; -begin - Left := WizardForm.WelcomeLabel2.Left; - LeftInc := (WizardForm.CancelButton.Width*3)/2 + ScaleX(8); - TopInc := WizardForm.CancelButton.Height + ScaleY(8); - Top := WizardForm.WelcomeLabel2.Top + WizardForm.WelcomeLabel2.Height - 4*TopInc; - - CreateButton(Left, Top, '&IShellLink...', @IShellLinkButtonOnClick); - Top := Top + TopInc; - CreateButton(Left, Top, '&ITaskScheduler...', @ITaskSchedulerButtonOnClick); -end; - - - - - diff --git a/Greenshot/tools/innosetup/Examples/CodeClasses.iss b/Greenshot/tools/innosetup/Examples/CodeClasses.iss deleted file mode 100644 index 2b78147cf..000000000 --- a/Greenshot/tools/innosetup/Examples/CodeClasses.iss +++ /dev/null @@ -1,361 +0,0 @@ -; -- CodeClasses.iss -- -; -; This script shows how to use the WizardForm object and the various VCL classes. - -[Setup] -AppName=My Program -AppVersion=1.5 -CreateAppDir=no -DisableProgramGroupPage=yes -DefaultGroupName=My Program -UninstallDisplayIcon={app}\MyProg.exe -WindowVisible=yes -OutputDir=userdocs:Inno Setup Examples Output - -[Files] -Source: compiler:WizModernSmallImage.bmp; Flags: dontcopy - -[Code] -procedure ButtonOnClick(Sender: TObject); -begin - MsgBox('You clicked the button!', mbInformation, mb_Ok); -end; - -procedure BitmapImageOnClick(Sender: TObject); -begin - MsgBox('You clicked the image!', mbInformation, mb_Ok); -end; - -procedure FormButtonOnClick(Sender: TObject); -var - Form: TSetupForm; - OKButton, CancelButton: TNewButton; -begin - Form := CreateCustomForm(); - try - Form.ClientWidth := ScaleX(256); - Form.ClientHeight := ScaleY(256); - Form.Caption := 'TSetupForm'; - Form.CenterInsideControl(WizardForm, False); - - OKButton := TNewButton.Create(Form); - OKButton.Parent := Form; - OKButton.Width := ScaleX(75); - OKButton.Height := ScaleY(23); - OKButton.Left := Form.ClientWidth - ScaleX(75 + 6 + 75 + 10); - OKButton.Top := Form.ClientHeight - ScaleY(23 + 10); - OKButton.Caption := 'OK'; - OKButton.ModalResult := mrOk; - - CancelButton := TNewButton.Create(Form); - CancelButton.Parent := Form; - CancelButton.Width := ScaleX(75); - CancelButton.Height := ScaleY(23); - CancelButton.Left := Form.ClientWidth - ScaleX(75 + 10); - CancelButton.Top := Form.ClientHeight - ScaleY(23 + 10); - CancelButton.Caption := 'Cancel'; - CancelButton.ModalResult := mrCancel; - CancelButton.Cancel := True; - - Form.ActiveControl := OKButton; - - if Form.ShowModal() = mrOk then - MsgBox('You clicked OK.', mbInformation, MB_OK); - finally - Form.Free(); - end; -end; - -procedure CreateTheWizardPages; -var - Page: TWizardPage; - Button, FormButton: TNewButton; - Panel: TPanel; - CheckBox: TNewCheckBox; - Edit: TNewEdit; - PasswordEdit: TPasswordEdit; - Memo: TNewMemo; - ComboBox: TNewComboBox; - ListBox: TNewListBox; - StaticText, ProgressBarLabel: TNewStaticText; - ProgressBar, ProgressBar2, ProgressBar3: TNewProgressBar; - CheckListBox, CheckListBox2: TNewCheckListBox; - FolderTreeView: TFolderTreeView; - BitmapImage, BitmapImage2, BitmapImage3: TBitmapImage; - BitmapFileName: String; - RichEditViewer: TRichEditViewer; -begin - { TButton and others } - - Page := CreateCustomPage(wpWelcome, 'Custom wizard page controls', 'TButton and others'); - - Button := TNewButton.Create(Page); - Button.Width := ScaleX(75); - Button.Height := ScaleY(23); - Button.Caption := 'TNewButton'; - Button.OnClick := @ButtonOnClick; - Button.Parent := Page.Surface; - - Panel := TPanel.Create(Page); - Panel.Width := Page.SurfaceWidth div 2 - ScaleX(8); - Panel.Left := Page.SurfaceWidth - Panel.Width; - Panel.Height := Button.Height * 2; - Panel.Caption := 'TPanel'; - Panel.Color := clWindow; - Panel.ParentBackground := False; - Panel.Parent := Page.Surface; - - CheckBox := TNewCheckBox.Create(Page); - CheckBox.Top := Button.Top + Button.Height + ScaleY(8); - CheckBox.Width := Page.SurfaceWidth div 2; - CheckBox.Height := ScaleY(17); - CheckBox.Caption := 'TNewCheckBox'; - CheckBox.Checked := True; - CheckBox.Parent := Page.Surface; - - Edit := TNewEdit.Create(Page); - Edit.Top := CheckBox.Top + CheckBox.Height + ScaleY(8); - Edit.Width := Page.SurfaceWidth div 2 - ScaleX(8); - Edit.Text := 'TNewEdit'; - Edit.Parent := Page.Surface; - - PasswordEdit := TPasswordEdit.Create(Page); - PasswordEdit.Left := Page.SurfaceWidth - Edit.Width; - PasswordEdit.Top := CheckBox.Top + CheckBox.Height + ScaleY(8); - PasswordEdit.Width := Edit.Width; - PasswordEdit.Text := 'TPasswordEdit'; - PasswordEdit.Parent := Page.Surface; - - Memo := TNewMemo.Create(Page); - Memo.Top := Edit.Top + Edit.Height + ScaleY(8); - Memo.Width := Page.SurfaceWidth; - Memo.Height := ScaleY(89); - Memo.ScrollBars := ssVertical; - Memo.Text := 'TNewMemo'; - Memo.Parent := Page.Surface; - - FormButton := TNewButton.Create(Page); - FormButton.Top := Memo.Top + Memo.Height + ScaleY(8); - FormButton.Width := ScaleX(75); - FormButton.Height := ScaleY(23); - FormButton.Caption := 'TSetupForm'; - FormButton.OnClick := @FormButtonOnClick; - FormButton.Parent := Page.Surface; - - { TComboBox and others } - - Page := CreateCustomPage(Page.ID, 'Custom wizard page controls', 'TComboBox and others'); - - ComboBox := TNewComboBox.Create(Page); - ComboBox.Width := Page.SurfaceWidth; - ComboBox.Parent := Page.Surface; - ComboBox.Style := csDropDownList; - ComboBox.Items.Add('TComboBox'); - ComboBox.ItemIndex := 0; - - ListBox := TNewListBox.Create(Page); - ListBox.Top := ComboBox.Top + ComboBox.Height + ScaleY(8); - ListBox.Width := Page.SurfaceWidth; - ListBox.Height := ScaleY(97); - ListBox.Parent := Page.Surface; - ListBox.Items.Add('TListBox'); - ListBox.ItemIndex := 0; - - StaticText := TNewStaticText.Create(Page); - StaticText.Top := ListBox.Top + ListBox.Height + ScaleY(8); - StaticText.Caption := 'TNewStaticText'; - StaticText.AutoSize := True; - StaticText.Parent := Page.Surface; - - ProgressBarLabel := TNewStaticText.Create(Page); - ProgressBarLabel.Top := StaticText.Top + StaticText.Height + ScaleY(8); - ProgressBarLabel.Caption := 'TNewProgressBar'; - ProgressBarLabel.AutoSize := True; - ProgressBarLabel.Parent := Page.Surface; - - ProgressBar := TNewProgressBar.Create(Page); - ProgressBar.Left := ProgressBarLabel.Width + ScaleX(8); - ProgressBar.Top := ProgressBarLabel.Top; - ProgressBar.Width := Page.SurfaceWidth - ProgressBar.Left; - ProgressBar.Height := ProgressBarLabel.Height + ScaleY(8); - ProgressBar.Parent := Page.Surface; - ProgressBar.Position := 25; - - ProgressBar2 := TNewProgressBar.Create(Page); - ProgressBar2.Left := ProgressBarLabel.Width + ScaleX(8); - ProgressBar2.Top := ProgressBar.Top + ProgressBar.Height + ScaleY(4); - ProgressBar2.Width := Page.SurfaceWidth - ProgressBar.Left; - ProgressBar2.Height := ProgressBarLabel.Height + ScaleY(8); - ProgressBar2.Parent := Page.Surface; - ProgressBar2.Position := 50; - { Note: TNewProgressBar.State property only has an effect on Windows Vista and newer } - ProgressBar2.State := npbsError; - - ProgressBar3 := TNewProgressBar.Create(Page); - ProgressBar3.Left := ProgressBarLabel.Width + ScaleX(8); - ProgressBar3.Top := ProgressBar2.Top + ProgressBar2.Height + ScaleY(4); - ProgressBar3.Width := Page.SurfaceWidth - ProgressBar.Left; - ProgressBar3.Height := ProgressBarLabel.Height + ScaleY(8); - ProgressBar3.Parent := Page.Surface; - { Note: TNewProgressBar.Style property only has an effect on Windows XP and newer } - ProgressBar3.Style := npbstMarquee; - - { TNewCheckListBox } - - Page := CreateCustomPage(Page.ID, 'Custom wizard page controls', 'TNewCheckListBox'); - - CheckListBox := TNewCheckListBox.Create(Page); - CheckListBox.Width := Page.SurfaceWidth; - CheckListBox.Height := ScaleY(97); - CheckListBox.Flat := True; - CheckListBox.Parent := Page.Surface; - CheckListBox.AddCheckBox('TNewCheckListBox', '', 0, True, True, False, True, nil); - CheckListBox.AddRadioButton('TNewCheckListBox', '', 1, True, True, nil); - CheckListBox.AddRadioButton('TNewCheckListBox', '', 1, False, True, nil); - CheckListBox.AddCheckBox('TNewCheckListBox', '', 0, True, True, False, True, nil); - - CheckListBox2 := TNewCheckListBox.Create(Page); - CheckListBox2.Top := CheckListBox.Top + CheckListBox.Height + ScaleY(8); - CheckListBox2.Width := Page.SurfaceWidth; - CheckListBox2.Height := ScaleY(97); - CheckListBox2.BorderStyle := bsNone; - CheckListBox2.ParentColor := True; - CheckListBox2.MinItemHeight := WizardForm.TasksList.MinItemHeight; - CheckListBox2.ShowLines := False; - CheckListBox2.WantTabs := True; - CheckListBox2.Parent := Page.Surface; - CheckListBox2.AddGroup('TNewCheckListBox', '', 0, nil); - CheckListBox2.AddRadioButton('TNewCheckListBox', '', 0, True, True, nil); - CheckListBox2.AddRadioButton('TNewCheckListBox', '', 0, False, True, nil); - - { TFolderTreeView } - - Page := CreateCustomPage(Page.ID, 'Custom wizard page controls', 'TFolderTreeView'); - - FolderTreeView := TFolderTreeView.Create(Page); - FolderTreeView.Width := Page.SurfaceWidth; - FolderTreeView.Height := Page.SurfaceHeight; - FolderTreeView.Parent := Page.Surface; - FolderTreeView.Directory := ExpandConstant('{src}'); - - { TBitmapImage } - - Page := CreateCustomPage(Page.ID, 'Custom wizard page controls', 'TBitmapImage'); - - BitmapFileName := ExpandConstant('{tmp}\WizModernSmallImage.bmp'); - ExtractTemporaryFile(ExtractFileName(BitmapFileName)); - - BitmapImage := TBitmapImage.Create(Page); - BitmapImage.AutoSize := True; - BitmapImage.Bitmap.LoadFromFile(BitmapFileName); - BitmapImage.Cursor := crHand; - BitmapImage.OnClick := @BitmapImageOnClick; - BitmapImage.Parent := Page.Surface; - - BitmapImage2 := TBitmapImage.Create(Page); - BitmapImage2.BackColor := $400000; - BitmapImage2.Bitmap := BitmapImage.Bitmap; - BitmapImage2.Center := True; - BitmapImage2.Left := BitmapImage.Width + 10; - BitmapImage2.Height := 2*BitmapImage.Height; - BitmapImage2.Width := 2*BitmapImage.Width; - BitmapImage2.Cursor := crHand; - BitmapImage2.OnClick := @BitmapImageOnClick; - BitmapImage2.Parent := Page.Surface; - - BitmapImage3 := TBitmapImage.Create(Page); - BitmapImage3.Bitmap := BitmapImage.Bitmap; - BitmapImage3.Stretch := True; - BitmapImage3.Left := 3*BitmapImage.Width + 20; - BitmapImage3.Height := 4*BitmapImage.Height; - BitmapImage3.Width := 4*BitmapImage.Width; - BitmapImage3.Cursor := crHand; - BitmapImage3.OnClick := @BitmapImageOnClick; - BitmapImage3.Parent := Page.Surface; - - { TRichViewer } - - Page := CreateCustomPage(Page.ID, 'Custom wizard page controls', 'TRichViewer'); - - RichEditViewer := TRichEditViewer.Create(Page); - RichEditViewer.Width := Page.SurfaceWidth; - RichEditViewer.Height := Page.SurfaceHeight; - RichEditViewer.Parent := Page.Surface; - RichEditViewer.ScrollBars := ssVertical; - RichEditViewer.UseRichEdit := True; - RichEditViewer.RTFText := '{\rtf1\ansi\ansicpg1252\deff0\deflang1043{\fonttbl{\f0\fswiss\fcharset0 Arial;}}{\colortbl ;\red255\green0\blue0;\red0\green128\blue0;\red0\green0\blue128;}\viewkind4\uc1\pard\f0\fs20 T\cf1 Rich\cf2 Edit\cf3 Viewer\cf0\par}'; - RichEditViewer.ReadOnly := True; -end; - -procedure AboutButtonOnClick(Sender: TObject); -begin - MsgBox('This demo shows some features of the various form objects and control classes.', mbInformation, mb_Ok); -end; - -procedure URLLabelOnClick(Sender: TObject); -var - ErrorCode: Integer; -begin - ShellExecAsOriginalUser('open', 'http://www.innosetup.com/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode); -end; - -procedure CreateAboutButtonAndURLLabel(ParentForm: TSetupForm; CancelButton: TNewButton); -var - AboutButton: TNewButton; - URLLabel: TNewStaticText; -begin - AboutButton := TNewButton.Create(ParentForm); - AboutButton.Left := ParentForm.ClientWidth - CancelButton.Left - CancelButton.Width; - AboutButton.Top := CancelButton.Top; - AboutButton.Width := CancelButton.Width; - AboutButton.Height := CancelButton.Height; - AboutButton.Caption := '&About...'; - AboutButton.OnClick := @AboutButtonOnClick; - AboutButton.Parent := ParentForm; - - URLLabel := TNewStaticText.Create(ParentForm); - URLLabel.Caption := 'www.innosetup.com'; - URLLabel.Cursor := crHand; - URLLabel.OnClick := @URLLabelOnClick; - URLLabel.Parent := ParentForm; - { Alter Font *after* setting Parent so the correct defaults are inherited first } - URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline]; - URLLabel.Font.Color := clBlue; - URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2; - URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(20); -end; - -procedure InitializeWizard(); -var - BackgroundBitmapImage: TBitmapImage; - BackgroundBitmapText: TNewStaticText; -begin - { Custom wizard pages } - - CreateTheWizardPages; - - { Custom controls } - - CreateAboutButtonAndURLLabel(WizardForm, WizardForm.CancelButton); - - BackgroundBitmapImage := TBitmapImage.Create(MainForm); - BackgroundBitmapImage.Left := 50; - BackgroundBitmapImage.Top := 90; - BackgroundBitmapImage.AutoSize := True; - BackgroundBitmapImage.Bitmap := WizardForm.WizardBitmapImage.Bitmap; - BackgroundBitmapImage.Parent := MainForm; - - BackgroundBitmapText := TNewStaticText.Create(MainForm); - BackgroundBitmapText.Left := BackgroundBitmapImage.Left; - BackgroundBitmapText.Top := BackgroundBitmapImage.Top + BackgroundBitmapImage.Height + ScaleY(8); - BackgroundBitmapText.Caption := 'TBitmapImage'; - BackgroundBitmapText.Parent := MainForm; -end; - -procedure InitializeUninstallProgressForm(); -begin - { Custom controls } - - CreateAboutButtonAndURLLabel(UninstallProgressForm, UninstallProgressForm.CancelButton); -end; - diff --git a/Greenshot/tools/innosetup/Examples/CodeDlg.iss b/Greenshot/tools/innosetup/Examples/CodeDlg.iss deleted file mode 100644 index b9674aba9..000000000 --- a/Greenshot/tools/innosetup/Examples/CodeDlg.iss +++ /dev/null @@ -1,204 +0,0 @@ -; -- CodeDlg.iss -- -; -; This script shows how to insert custom wizard pages into Setup and how to handle -; these pages. Furthermore it shows how to 'communicate' between the [Code] section -; and the regular Inno Setup sections using {code:...} constants. Finally it shows -; how to customize the settings text on the 'Ready To Install' page. - -[Setup] -AppName=My Program -AppVersion=1.5 -DefaultDirName={pf}\My Program -DisableProgramGroupPage=yes -UninstallDisplayIcon={app}\MyProg.exe -OutputDir=userdocs:Inno Setup Examples Output - -[Files] -Source: "MyProg.exe"; DestDir: "{app}" -Source: "MyProg.chm"; DestDir: "{app}" -Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme - -[Registry] -Root: HKCU; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty -Root: HKCU; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey -Root: HKCU; Subkey: "Software\My Company\My Program\Settings"; ValueType: string; ValueName: "Name"; ValueData: "{code:GetUser|Name}" -Root: HKCU; Subkey: "Software\My Company\My Program\Settings"; ValueType: string; ValueName: "Company"; ValueData: "{code:GetUser|Company}" -Root: HKCU; Subkey: "Software\My Company\My Program\Settings"; ValueType: string; ValueName: "DataDir"; ValueData: "{code:GetDataDir}" -; etc. - -[Dirs] -Name: {code:GetDataDir}; Flags: uninsneveruninstall - -[Code] -var - UserPage: TInputQueryWizardPage; - UsagePage: TInputOptionWizardPage; - LightMsgPage: TOutputMsgWizardPage; - KeyPage: TInputQueryWizardPage; - ProgressPage: TOutputProgressWizardPage; - DataDirPage: TInputDirWizardPage; - -procedure InitializeWizard; -begin - { Create the pages } - - UserPage := CreateInputQueryPage(wpWelcome, - 'Personal Information', 'Who are you?', - 'Please specify your name and the company for whom you work, then click Next.'); - UserPage.Add('Name:', False); - UserPage.Add('Company:', False); - - UsagePage := CreateInputOptionPage(UserPage.ID, - 'Personal Information', 'How will you use My Program?', - 'Please specify how you would like to use My Program, then click Next.', - True, False); - UsagePage.Add('Light mode (no ads, limited functionality)'); - UsagePage.Add('Sponsored mode (with ads, full functionality)'); - UsagePage.Add('Paid mode (no ads, full functionality)'); - - LightMsgPage := CreateOutputMsgPage(UsagePage.ID, - 'Personal Information', 'How will you use My Program?', - 'Note: to enjoy all features My Program can offer and to support its development, ' + - 'you can switch to sponsored or paid mode at any time by selecting ''Usage Mode'' ' + - 'in the ''Help'' menu of My Program after the installation has completed.'#13#13 + - 'Click Back if you want to change your usage mode setting now, or click Next to ' + - 'continue with the installation.'); - - KeyPage := CreateInputQueryPage(UsagePage.ID, - 'Personal Information', 'What''s your registration key?', - 'Please specify your registration key and click Next to continue. If you don''t ' + - 'have a valid registration key, click Back to choose a different usage mode.'); - KeyPage.Add('Registration key:', False); - - ProgressPage := CreateOutputProgressPage('Personal Information', - 'What''s your registration key?'); - - DataDirPage := CreateInputDirPage(wpSelectDir, - 'Select Personal Data Directory', 'Where should personal data files be installed?', - 'Select the folder in which Setup should install personal data files, then click Next.', - False, ''); - DataDirPage.Add(''); - - { Set default values, using settings that were stored last time if possible } - - UserPage.Values[0] := GetPreviousData('Name', ExpandConstant('{sysuserinfoname}')); - UserPage.Values[1] := GetPreviousData('Company', ExpandConstant('{sysuserinfoorg}')); - - case GetPreviousData('UsageMode', '') of - 'light': UsagePage.SelectedValueIndex := 0; - 'sponsored': UsagePage.SelectedValueIndex := 1; - 'paid': UsagePage.SelectedValueIndex := 2; - else - UsagePage.SelectedValueIndex := 1; - end; - - DataDirPage.Values[0] := GetPreviousData('DataDir', ''); -end; - -procedure RegisterPreviousData(PreviousDataKey: Integer); -var - UsageMode: String; -begin - { Store the settings so we can restore them next time } - SetPreviousData(PreviousDataKey, 'Name', UserPage.Values[0]); - SetPreviousData(PreviousDataKey, 'Company', UserPage.Values[1]); - case UsagePage.SelectedValueIndex of - 0: UsageMode := 'light'; - 1: UsageMode := 'sponsored'; - 2: UsageMode := 'paid'; - end; - SetPreviousData(PreviousDataKey, 'UsageMode', UsageMode); - SetPreviousData(PreviousDataKey, 'DataDir', DataDirPage.Values[0]); -end; - -function ShouldSkipPage(PageID: Integer): Boolean; -begin - { Skip pages that shouldn't be shown } - if (PageID = LightMsgPage.ID) and (UsagePage.SelectedValueIndex <> 0) then - Result := True - else if (PageID = KeyPage.ID) and (UsagePage.SelectedValueIndex <> 2) then - Result := True - else - Result := False; -end; - -function NextButtonClick(CurPageID: Integer): Boolean; -var - I: Integer; -begin - { Validate certain pages before allowing the user to proceed } - if CurPageID = UserPage.ID then begin - if UserPage.Values[0] = '' then begin - MsgBox('You must enter your name.', mbError, MB_OK); - Result := False; - end else begin - if DataDirPage.Values[0] = '' then - DataDirPage.Values[0] := 'C:\' + UserPage.Values[0]; - Result := True; - end; - end else if CurPageID = KeyPage.ID then begin - { Just to show how 'OutputProgress' pages work. - Always use a try..finally between the Show and Hide calls as shown below. } - ProgressPage.SetText('Authorizing registration key...', ''); - ProgressPage.SetProgress(0, 0); - ProgressPage.Show; - try - for I := 0 to 10 do begin - ProgressPage.SetProgress(I, 10); - Sleep(100); - end; - finally - ProgressPage.Hide; - end; - if KeyPage.Values[0] = 'inno' then - Result := True - else begin - MsgBox('You must enter a valid registration key. (Hint: The key is "inno".)', mbError, MB_OK); - Result := False; - end; - end else - Result := True; -end; - -function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, - MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String; -var - S: String; -begin - { Fill the 'Ready Memo' with the normal settings and the custom settings } - S := ''; - S := S + 'Personal Information:' + NewLine; - S := S + Space + UserPage.Values[0] + NewLine; - if UserPage.Values[1] <> '' then - S := S + Space + UserPage.Values[1] + NewLine; - S := S + NewLine; - - S := S + 'Usage Mode:' + NewLine + Space; - case UsagePage.SelectedValueIndex of - 0: S := S + 'Light mode'; - 1: S := S + 'Sponsored mode'; - 2: S := S + 'Paid mode'; - end; - S := S + NewLine + NewLine; - - S := S + MemoDirInfo + NewLine; - S := S + Space + DataDirPage.Values[0] + ' (personal data files)' + NewLine; - - Result := S; -end; - -function GetUser(Param: String): String; -begin - { Return a user value } - { Could also be split into separate GetUserName and GetUserCompany functions } - if Param = 'Name' then - Result := UserPage.Values[0] - else if Param = 'Company' then - Result := UserPage.Values[1]; -end; - -function GetDataDir(Param: String): String; -begin - { Return the selected DataDir } - Result := DataDirPage.Values[0]; -end; diff --git a/Greenshot/tools/innosetup/Examples/CodeDll.iss b/Greenshot/tools/innosetup/Examples/CodeDll.iss deleted file mode 100644 index 979287b12..000000000 --- a/Greenshot/tools/innosetup/Examples/CodeDll.iss +++ /dev/null @@ -1,72 +0,0 @@ -; -- CodeDll.iss -- -; -; This script shows how to call DLL functions at runtime from a [Code] section. - -[Setup] -AppName=My Program -AppVersion=1.5 -DefaultDirName={pf}\My Program -DisableProgramGroupPage=yes -UninstallDisplayIcon={app}\MyProg.exe -OutputDir=userdocs:Inno Setup Examples Output - -[Files] -Source: "MyProg.exe"; DestDir: "{app}" -Source: "MyProg.chm"; DestDir: "{app}" -Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme -; Install our DLL to {app} so we can access it at uninstall time -; Use "Flags: dontcopy" if you don't need uninstall time access -Source: "MyDll.dll"; DestDir: "{app}" - -[Code] -const - MB_ICONINFORMATION = $40; - -//importing a Windows API function -function MessageBox(hWnd: Integer; lpText, lpCaption: AnsiString; uType: Cardinal): Integer; -external 'MessageBoxA@user32.dll stdcall'; - -//importing a custom DLL function, first for Setup, then for uninstall -procedure MyDllFuncSetup(hWnd: Integer; lpText, lpCaption: AnsiString; uType: Cardinal); -external 'MyDllFunc@files:MyDll.dll stdcall setuponly'; - -procedure MyDllFuncUninstall(hWnd: Integer; lpText, lpCaption: AnsiString; uType: Cardinal); -external 'MyDllFunc@{app}\MyDll.dll stdcall uninstallonly'; - -//importing a function for a DLL which might not exist at runtime -procedure DelayLoadedFunc(hWnd: Integer; lpText, lpCaption: AnsiString; uType: Cardinal); -external 'DllFunc@DllWhichMightNotExist.dll stdcall delayload'; - -function NextButtonClick(CurPage: Integer): Boolean; -var - hWnd: Integer; -begin - if CurPage = wpWelcome then begin - hWnd := StrToInt(ExpandConstant('{wizardhwnd}')); - - MessageBox(hWnd, 'Hello from Windows API function', 'MessageBoxA', MB_OK or MB_ICONINFORMATION); - - MyDllFuncSetup(hWnd, 'Hello from custom DLL function', 'MyDllFunc', MB_OK or MB_ICONINFORMATION); - - try - //if this DLL does not exist (it shouldn't), an exception will be raised - DelayLoadedFunc(hWnd, 'Hello from delay loaded function', 'DllFunc', MB_OK or MB_ICONINFORMATION); - except - //handle missing dll here - end; - end; - Result := True; -end; - -procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); -begin - // Call our function just before the actual uninstall process begins - if CurUninstallStep = usUninstall then - begin - MyDllFuncUninstall(0, 'Hello from custom DLL function', 'MyDllFunc', MB_OK or MB_ICONINFORMATION); - - // Now that we're finished with it, unload MyDll.dll from memory. - // We have to do this so that the uninstaller will be able to remove the DLL and the {app} directory. - UnloadDLL(ExpandConstant('{app}\MyDll.dll')); - end; -end; diff --git a/Greenshot/tools/innosetup/Examples/CodeExample1.iss b/Greenshot/tools/innosetup/Examples/CodeExample1.iss deleted file mode 100644 index edbeb1e02..000000000 --- a/Greenshot/tools/innosetup/Examples/CodeExample1.iss +++ /dev/null @@ -1,149 +0,0 @@ -; -- CodeExample1.iss -- -; -; This script shows various things you can achieve using a [Code] section - -[Setup] -AppName=My Program -AppVersion=1.5 -DefaultDirName={code:MyConst}\My Program -DefaultGroupName=My Program -UninstallDisplayIcon={app}\MyProg.exe -InfoBeforeFile=Readme.txt -OutputDir=userdocs:Inno Setup Examples Output - -[Files] -Source: "MyProg.exe"; DestDir: "{app}"; Check: MyProgCheck; BeforeInstall: BeforeMyProgInstall('MyProg.exe'); AfterInstall: AfterMyProgInstall('MyProg.exe') -Source: "MyProg.chm"; DestDir: "{app}"; Check: MyProgCheck; BeforeInstall: BeforeMyProgInstall('MyProg.chm'); AfterInstall: AfterMyProgInstall('MyProg.chm') -Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme - -[Icons] -Name: "{group}\My Program"; Filename: "{app}\MyProg.exe" - -[Code] -var - MyProgChecked: Boolean; - MyProgCheckResult: Boolean; - FinishedInstall: Boolean; - -function InitializeSetup(): Boolean; -begin - Log('InitializeSetup called'); - Result := MsgBox('InitializeSetup:' #13#13 'Setup is initializing. Do you really want to start setup?', mbConfirmation, MB_YESNO) = idYes; - if Result = False then - MsgBox('InitializeSetup:' #13#13 'Ok, bye bye.', mbInformation, MB_OK); -end; - -procedure DeinitializeSetup(); -var - FileName: String; - ResultCode: Integer; -begin - Log('DeinitializeSetup called'); - if FinishedInstall then begin - if MsgBox('DeinitializeSetup:' #13#13 'The [Code] scripting demo has finished. Do you want to uninstall My Program now?', mbConfirmation, MB_YESNO) = idYes then begin - FileName := ExpandConstant('{uninstallexe}'); - if not Exec(FileName, '', '', SW_SHOWNORMAL, ewNoWait, ResultCode) then - MsgBox('DeinitializeSetup:' #13#13 'Execution of ''' + FileName + ''' failed. ' + SysErrorMessage(ResultCode) + '.', mbError, MB_OK); - end else - MsgBox('DeinitializeSetup:' #13#13 'Ok, bye bye.', mbInformation, MB_OK); - end; -end; - -procedure CurStepChanged(CurStep: TSetupStep); -begin - Log('CurStepChanged(' + IntToStr(Ord(CurStep)) + ') called'); - if CurStep = ssPostInstall then - FinishedInstall := True; -end; - -function NextButtonClick(CurPageID: Integer): Boolean; -var - ResultCode: Integer; -begin - Log('NextButtonClick(' + IntToStr(CurPageID) + ') called'); - case CurPageID of - wpSelectDir: - MsgBox('NextButtonClick:' #13#13 'You selected: ''' + WizardDirValue + '''.', mbInformation, MB_OK); - wpSelectProgramGroup: - MsgBox('NextButtonClick:' #13#13 'You selected: ''' + WizardGroupValue + '''.', mbInformation, MB_OK); - wpReady: - begin - if MsgBox('NextButtonClick:' #13#13 'Using the script, files can be extracted before the installation starts. For example we could extract ''MyProg.exe'' now and run it.' #13#13 'Do you want to do this?', mbConfirmation, MB_YESNO) = idYes then begin - ExtractTemporaryFile('myprog.exe'); - if not Exec(ExpandConstant('{tmp}\myprog.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then - MsgBox('NextButtonClick:' #13#13 'The file could not be executed. ' + SysErrorMessage(ResultCode) + '.', mbError, MB_OK); - end; - BringToFrontAndRestore(); - MsgBox('NextButtonClick:' #13#13 'The normal installation will now start.', mbInformation, MB_OK); - end; - end; - - Result := True; -end; - -function BackButtonClick(CurPageID: Integer): Boolean; -begin - Log('BackButtonClick(' + IntToStr(CurPageID) + ') called'); - Result := True; -end; - -function ShouldSkipPage(PageID: Integer): Boolean; -begin - Log('ShouldSkipPage(' + IntToStr(PageID) + ') called'); - { Skip wpInfoBefore page; show all others } - case PageID of - wpInfoBefore: - Result := True; - else - Result := False; - end; -end; - -procedure CurPageChanged(CurPageID: Integer); -begin - Log('CurPageChanged(' + IntToStr(CurPageID) + ') called'); - case CurPageID of - wpWelcome: - MsgBox('CurPageChanged:' #13#13 'Welcome to the [Code] scripting demo. This demo will show you some possibilities of the scripting support.' #13#13 'The scripting engine used is RemObjects Pascal Script by Carlo Kok. See http://www.remobjects.com/ps for more information.', mbInformation, MB_OK); - wpFinished: - MsgBox('CurPageChanged:' #13#13 'Welcome to final page of this demo. Click Finish to exit.', mbInformation, MB_OK); - end; -end; - -function PrepareToInstall(var NeedsRestart: Boolean): String; -begin - Log('PrepareToInstall() called'); - if MsgBox('PrepareToInstall:' #13#13 'Setup is preparing to install. Using the script you can install any prerequisites, abort Setup on errors, and request restarts. Do you want to return an error now?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = idYes then - Result := '.' - else - Result := ''; -end; - -function MyProgCheck(): Boolean; -begin - Log('MyProgCheck() called'); - if not MyProgChecked then begin - MyProgCheckResult := MsgBox('MyProgCheck:' #13#13 'Using the script you can decide at runtime to include or exclude files from the installation. Do you want to install MyProg.exe and MyProg.chm to ' + ExtractFilePath(CurrentFileName) + '?', mbConfirmation, MB_YESNO) = idYes; - MyProgChecked := True; - end; - Result := MyProgCheckResult; -end; - -procedure BeforeMyProgInstall(S: String); -begin - Log('BeforeMyProgInstall(''' + S + ''') called'); - MsgBox('BeforeMyProgInstall:' #13#13 'Setup is now going to install ' + S + ' as ' + CurrentFileName + '.', mbInformation, MB_OK); -end; - -procedure AfterMyProgInstall(S: String); -begin - Log('AfterMyProgInstall(''' + S + ''') called'); - MsgBox('AfterMyProgInstall:' #13#13 'Setup just installed ' + S + ' as ' + CurrentFileName + '.', mbInformation, MB_OK); -end; - -function MyConst(Param: String): String; -begin - Log('MyConst(''' + Param + ''') called'); - Result := ExpandConstant('{pf}'); -end; - diff --git a/Greenshot/tools/innosetup/Examples/CodePrepareToInstall.iss b/Greenshot/tools/innosetup/Examples/CodePrepareToInstall.iss deleted file mode 100644 index 3007c919f..000000000 --- a/Greenshot/tools/innosetup/Examples/CodePrepareToInstall.iss +++ /dev/null @@ -1,117 +0,0 @@ -; -- CodePrepareToInstall.iss -- -; -; This script shows how the PrepareToInstall event function can be used to -; install prerequisites and handle any reboots in between, while remembering -; user selections across reboots. - -[Setup] -AppName=My Program -AppVersion=1.5 -DefaultDirName={pf}\My Program -DefaultGroupName=My Program -UninstallDisplayIcon={app}\MyProg.exe -OutputDir=userdocs:Inno Setup Examples Output - -[Files] -Source: "MyProg.exe"; DestDir: "{app}"; -Source: "MyProg.chm"; DestDir: "{app}"; -Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme; - -[Icons] -Name: "{group}\My Program"; Filename: "{app}\MyProg.exe" - -[Code] -const - (*** Customize the following to your own name. ***) - RunOnceName = 'My Program Setup restart'; - - QuitMessageReboot = 'The installation of a prerequisite program was not completed. You will need to restart your computer to complete that installation.'#13#13'After restarting your computer, Setup will continue next time an administrator logs in.'; - QuitMessageError = 'Error. Cannot continue.'; - -var - Restarted: Boolean; - -function InitializeSetup(): Boolean; -begin - Restarted := ExpandConstant('{param:restart|0}') = '1'; - - if not Restarted then begin - Result := not RegValueExists(HKLM, 'Software\Microsoft\Windows\CurrentVersion\RunOnce', RunOnceName); - if not Result then - MsgBox(QuitMessageReboot, mbError, mb_Ok); - end else - Result := True; -end; - -function DetectAndInstallPrerequisites: Boolean; -begin - (*** Place your prerequisite detection and installation code below. ***) - (*** Return False if missing prerequisites were detected but their installation failed, else return True. ***) - - // - - Result := True; - - (*** Remove the following block! Used by this demo to simulate a prerequisite install requiring a reboot. ***) - if not Restarted then - RestartReplace(ParamStr(0), ''); -end; - -function Quote(const S: String): String; -begin - Result := '"' + S + '"'; -end; - -function AddParam(const S, P, V: String): String; -begin - if V <> '""' then - Result := S + ' /' + P + '=' + V; -end; - -function AddSimpleParam(const S, P: String): String; -begin - Result := S + ' /' + P; -end; - -procedure CreateRunOnceEntry; -var - RunOnceData: String; -begin - RunOnceData := Quote(ExpandConstant('{srcexe}')) + ' /restart=1'; - RunOnceData := AddParam(RunOnceData, 'LANG', ExpandConstant('{language}')); - RunOnceData := AddParam(RunOnceData, 'DIR', Quote(WizardDirValue)); - RunOnceData := AddParam(RunOnceData, 'GROUP', Quote(WizardGroupValue)); - if WizardNoIcons then - RunOnceData := AddSimpleParam(RunOnceData, 'NOICONS'); - RunOnceData := AddParam(RunOnceData, 'TYPE', Quote(WizardSetupType(False))); - RunOnceData := AddParam(RunOnceData, 'COMPONENTS', Quote(WizardSelectedComponents(False))); - RunOnceData := AddParam(RunOnceData, 'TASKS', Quote(WizardSelectedTasks(False))); - - (*** Place any custom user selection you want to remember below. ***) - - // - - RegWriteStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion\RunOnce', RunOnceName, RunOnceData); -end; - -function PrepareToInstall(var NeedsRestart: Boolean): String; -var - ChecksumBefore, ChecksumAfter: String; -begin - ChecksumBefore := MakePendingFileRenameOperationsChecksum; - if DetectAndInstallPrerequisites then begin - ChecksumAfter := MakePendingFileRenameOperationsChecksum; - if ChecksumBefore <> ChecksumAfter then begin - CreateRunOnceEntry; - NeedsRestart := True; - Result := QuitMessageReboot; - end; - end else - Result := QuitMessageError; -end; - -function ShouldSkipPage(PageID: Integer): Boolean; -begin - Result := Restarted; -end; - diff --git a/Greenshot/tools/innosetup/Examples/Components.iss b/Greenshot/tools/innosetup/Examples/Components.iss deleted file mode 100644 index 5d4276ddd..000000000 --- a/Greenshot/tools/innosetup/Examples/Components.iss +++ /dev/null @@ -1,33 +0,0 @@ -; -- Components.iss -- -; Demonstrates a components-based installation. - -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! - -[Setup] -AppName=My Program -AppVersion=1.5 -DefaultDirName={pf}\My Program -DefaultGroupName=My Program -UninstallDisplayIcon={app}\MyProg.exe -OutputDir=userdocs:Inno Setup Examples Output - -[Types] -Name: "full"; Description: "Full installation" -Name: "compact"; Description: "Compact installation" -Name: "custom"; Description: "Custom installation"; Flags: iscustom - -[Components] -Name: "program"; Description: "Program Files"; Types: full compact custom; Flags: fixed -Name: "help"; Description: "Help File"; Types: full -Name: "readme"; Description: "Readme File"; Types: full -Name: "readme\en"; Description: "English"; Flags: exclusive -Name: "readme\de"; Description: "German"; Flags: exclusive - -[Files] -Source: "MyProg.exe"; DestDir: "{app}"; Components: program -Source: "MyProg.chm"; DestDir: "{app}"; Components: help -Source: "Readme.txt"; DestDir: "{app}"; Components: readme\en; Flags: isreadme -Source: "Readme-German.txt"; DestName: "Liesmich.txt"; DestDir: "{app}"; Components: readme\de; Flags: isreadme - -[Icons] -Name: "{group}\My Program"; Filename: "{app}\MyProg.exe" diff --git a/Greenshot/tools/innosetup/Examples/Example1.iss b/Greenshot/tools/innosetup/Examples/Example1.iss deleted file mode 100644 index 1d1a392a0..000000000 --- a/Greenshot/tools/innosetup/Examples/Example1.iss +++ /dev/null @@ -1,22 +0,0 @@ -; -- Example1.iss -- -; Demonstrates copying 3 files and creating an icon. - -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! - -[Setup] -AppName=My Program -AppVersion=1.5 -DefaultDirName={pf}\My Program -DefaultGroupName=My Program -UninstallDisplayIcon={app}\MyProg.exe -Compression=lzma2 -SolidCompression=yes -OutputDir=userdocs:Inno Setup Examples Output - -[Files] -Source: "MyProg.exe"; DestDir: "{app}" -Source: "MyProg.chm"; DestDir: "{app}" -Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme - -[Icons] -Name: "{group}\My Program"; Filename: "{app}\MyProg.exe" diff --git a/Greenshot/tools/innosetup/Examples/Example2.iss b/Greenshot/tools/innosetup/Examples/Example2.iss deleted file mode 100644 index c3f3a6bfe..000000000 --- a/Greenshot/tools/innosetup/Examples/Example2.iss +++ /dev/null @@ -1,24 +0,0 @@ -; -- Example2.iss -- -; Same as Example1.iss, but creates its icon in the Programs folder of the -; Start Menu instead of in a subfolder, and also creates a desktop icon. - -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! - -[Setup] -AppName=My Program -AppVersion=1.5 -DefaultDirName={pf}\My Program -; Since no icons will be created in "{group}", we don't need the wizard -; to ask for a Start Menu folder name: -DisableProgramGroupPage=yes -UninstallDisplayIcon={app}\MyProg.exe -OutputDir=userdocs:Inno Setup Examples Output - -[Files] -Source: "MyProg.exe"; DestDir: "{app}" -Source: "MyProg.chm"; DestDir: "{app}" -Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme - -[Icons] -Name: "{commonprograms}\My Program"; Filename: "{app}\MyProg.exe" -Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe" diff --git a/Greenshot/tools/innosetup/Examples/Example3.iss b/Greenshot/tools/innosetup/Examples/Example3.iss deleted file mode 100644 index 40962c695..000000000 --- a/Greenshot/tools/innosetup/Examples/Example3.iss +++ /dev/null @@ -1,35 +0,0 @@ -; -- Example3.iss -- -; Same as Example1.iss, but creates some registry entries too. - -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! - -[Setup] -AppName=My Program -AppVersion=1.5 -DefaultDirName={pf}\My Program -DefaultGroupName=My Program -UninstallDisplayIcon={app}\MyProg.exe -OutputDir=userdocs:Inno Setup Examples Output - -[Files] -Source: "MyProg.exe"; DestDir: "{app}" -Source: "MyProg.chm"; DestDir: "{app}" -Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme - -[Icons] -Name: "{group}\My Program"; Filename: "{app}\MyProg.exe" - -; NOTE: Most apps do not need registry entries to be pre-created. If you -; don't know what the registry is or if you need to use it, then chances are -; you don't need a [Registry] section. - -[Registry] -; Start "Software\My Company\My Program" keys under HKEY_CURRENT_USER -; and HKEY_LOCAL_MACHINE. The flags tell it to always delete the -; "My Program" keys upon uninstall, and delete the "My Company" keys -; if there is nothing left in them. -Root: HKCU; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty -Root: HKCU; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey -Root: HKLM; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty -Root: HKLM; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey -Root: HKLM; Subkey: "Software\My Company\My Program\Settings"; ValueType: string; ValueName: "Path"; ValueData: "{app}" diff --git a/Greenshot/tools/innosetup/Examples/ISPPExample1.iss b/Greenshot/tools/innosetup/Examples/ISPPExample1.iss deleted file mode 100644 index cb3e7b4e7..000000000 --- a/Greenshot/tools/innosetup/Examples/ISPPExample1.iss +++ /dev/null @@ -1,44 +0,0 @@ -; -- ISPPExample1.iss -- -; -; This script shows various basic things you can achieve using Inno Setup Preprocessor (ISPP). -; To enable commented #define's, either remove the ';' or use ISCC with the /D switch. - -#pragma option -v+ -#pragma verboselevel 9 - -;#define Debug - -;#define AppEnterprise - -#ifdef AppEnterprise - #define AppName "My Program Enterprise Edition" -#else - #define AppName "My Program" -#endif - -#define AppVersion GetFileVersion(AddBackslash(SourcePath) + "MyProg.exe") - -[Setup] -AppName={#AppName} -AppVersion={#AppVersion} -DefaultDirName={pf}\{#AppName} -DefaultGroupName={#AppName} -UninstallDisplayIcon={app}\MyProg.exe -LicenseFile={#file AddBackslash(SourcePath) + "ISPPExample1License.txt"} -VersionInfoVersion={#AppVersion} -OutputDir=userdocs:Inno Setup Examples Output - -[Files] -Source: "MyProg.exe"; DestDir: "{app}" -#ifdef AppEnterprise -Source: "MyProg.chm"; DestDir: "{app}" -#endif -Source: "Readme.txt"; DestDir: "{app}"; \ - Flags: isreadme - -[Icons] -Name: "{group}\{#AppName}"; Filename: "{app}\MyProg.exe" - -#ifdef Debug - #expr SaveToFile(AddBackslash(SourcePath) + "Preprocessed.iss") -#endif diff --git a/Greenshot/tools/innosetup/Examples/ISPPExample1License.txt b/Greenshot/tools/innosetup/Examples/ISPPExample1License.txt deleted file mode 100644 index a6468eb88..000000000 --- a/Greenshot/tools/innosetup/Examples/ISPPExample1License.txt +++ /dev/null @@ -1,4 +0,0 @@ -#pragma option -e+ -{#AppName} version {#AppVersion} License - -Bla bla bla \ No newline at end of file diff --git a/Greenshot/tools/innosetup/Examples/Languages.iss b/Greenshot/tools/innosetup/Examples/Languages.iss deleted file mode 100644 index 0c1c6b2a3..000000000 --- a/Greenshot/tools/innosetup/Examples/Languages.iss +++ /dev/null @@ -1,59 +0,0 @@ -; -- Languages.iss -- -; Demonstrates a multilingual installation. - -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! - -[Setup] -AppName={cm:MyAppName} -AppId=My Program -AppVerName={cm:MyAppVerName,1.5} -DefaultDirName={pf}\{cm:MyAppName} -DefaultGroupName={cm:MyAppName} -UninstallDisplayIcon={app}\MyProg.exe -VersionInfoDescription=My Program Setup -VersionInfoProductName=My Program -OutputDir=userdocs:Inno Setup Examples Output -; Uncomment the following line to disable the "Select Setup Language" -; dialog and have it rely solely on auto-detection. -;ShowLanguageDialog=no -; If you want all languages to be listed in the "Select Setup Language" -; dialog, even those that can't be displayed in the active code page, -; uncomment the following line. Note: Unicode Inno Setup always displays -; all languages. -;ShowUndisplayableLanguages=yes - -[Languages] -Name: en; MessagesFile: "compiler:Default.isl" -Name: nl; MessagesFile: "compiler:Languages\Dutch.isl" -Name: de; MessagesFile: "compiler:Languages\German.isl" - -[Messages] -en.BeveledLabel=English -nl.BeveledLabel=Nederlands -de.BeveledLabel=Deutsch - -[CustomMessages] -en.MyDescription=My description -en.MyAppName=My Program -en.MyAppVerName=My Program %1 -nl.MyDescription=Mijn omschrijving -nl.MyAppName=Mijn programma -nl.MyAppVerName=Mijn programma %1 -de.MyDescription=Meine Beschreibung -de.MyAppName=Meine Anwendung -de.MyAppVerName=Meine Anwendung %1 - -[Files] -Source: "MyProg.exe"; DestDir: "{app}" -Source: "MyProg.chm"; DestDir: "{app}"; Languages: en -Source: "Readme.txt"; DestDir: "{app}"; Languages: en; Flags: isreadme -Source: "Readme-Dutch.txt"; DestName: "Leesmij.txt"; DestDir: "{app}"; Languages: nl; Flags: isreadme -Source: "Readme-German.txt"; DestName: "Liesmich.txt"; DestDir: "{app}"; Languages: de; Flags: isreadme - -[Icons] -Name: "{group}\{cm:MyAppName}"; Filename: "{app}\MyProg.exe" -Name: "{group}\{cm:UninstallProgram,{cm:MyAppName}}"; Filename: "{uninstallexe}" - -[Tasks] -; The following task doesn't do anything and is only meant to show [CustomMessages] usage -Name: mytask; Description: "{cm:MyDescription}" diff --git a/Greenshot/tools/innosetup/Examples/MyDll.dll b/Greenshot/tools/innosetup/Examples/MyDll.dll deleted file mode 100644 index 8dd14f074398bd19459bf6313f85561a98f1bf0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7680 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 - -void __stdcall MyDllFunc(HWND hWnd, char *lpText, char *lpCaption, UINT uType) -{ - MessageBox(hWnd, lpText, lpCaption, uType); -} \ No newline at end of file diff --git a/Greenshot/tools/innosetup/Examples/MyDll/C/MyDll.def b/Greenshot/tools/innosetup/Examples/MyDll/C/MyDll.def deleted file mode 100644 index 4f540231b..000000000 --- a/Greenshot/tools/innosetup/Examples/MyDll/C/MyDll.def +++ /dev/null @@ -1,2 +0,0 @@ -EXPORTS - MyDllFunc \ No newline at end of file diff --git a/Greenshot/tools/innosetup/Examples/MyDll/C/MyDll.dsp b/Greenshot/tools/innosetup/Examples/MyDll/C/MyDll.dsp deleted file mode 100644 index 565ec4813..000000000 --- a/Greenshot/tools/innosetup/Examples/MyDll/C/MyDll.dsp +++ /dev/null @@ -1,76 +0,0 @@ -# Microsoft Developer Studio Project File - Name="MyDll" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=MyDll - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "MyDll.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "MyDll.mak" CFG="MyDll - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "MyDll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "." -# PROP Intermediate_Dir "." -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYDLL_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYDLL_EXPORTS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x413 /d "NDEBUG" -# ADD RSC /l 0x413 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# Begin Target - -# Name "MyDll - Win32 Release" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\MyDll.c -# End Source File -# Begin Source File - -SOURCE=.\MyDll.def -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git a/Greenshot/tools/innosetup/Examples/MyDll/Delphi/MyDll.dpr b/Greenshot/tools/innosetup/Examples/MyDll/Delphi/MyDll.dpr deleted file mode 100644 index 202ce8440..000000000 --- a/Greenshot/tools/innosetup/Examples/MyDll/Delphi/MyDll.dpr +++ /dev/null @@ -1,14 +0,0 @@ -library MyDll; - -uses - Windows; - -procedure MyDllFunc(hWnd: Integer; lpText, lpCaption: PAnsiChar; uType: Cardinal); stdcall; -begin - MessageBoxA(hWnd, lpText, lpCaption, uType); -end; - -exports MyDllFunc; - -begin -end. diff --git a/Greenshot/tools/innosetup/Examples/MyProg-IA64.exe b/Greenshot/tools/innosetup/Examples/MyProg-IA64.exe deleted file mode 100644 index bb93ad854f33558650ec2425aa77460072cba528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5632 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 diff --git a/Greenshot/tools/innosetup/Examples/MyProg.chm b/Greenshot/tools/innosetup/Examples/MyProg.chm deleted file mode 100644 index 1c88535404a18fef5cf3f6cd2d6e5a07a262223e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12503 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