Setup BG Images or Custom Button etc theme for Inno setup
-
@DabDab are you ok with editing the script files? Or are looking for a gui program that’s like graphical installer
-
@Casmat Yea, I am looking for a GUI program that will look like graphical installer.
-
@DabDab then I think there’s very little options.. this website has most tools used, there’s a couple close to graphical installer, but none are as intuitive as graphical installer: https://jrsoftware.org/is3rdparty.php
-
@Casmat Oh I see.. very nice post. Thank you
-
@DabDab said in Setup BG Images or Custom Button etc theme for Inno setup:
@Casmat Oh I see.. very nice post. Thank you
Build your own in HISE perhpas?
-
@Lindon im hooked… how does one do this madness?? How do you go about it?
-
@Casmat Well basically:
- Hise has the ability to get and use folders/directories
- so there are constants for Audio Files, Sample Folder, APP Data etc. etc. so you know where these things need to be, or you can ask the user where they want them to be:
- Hise has the ability to uncompress zip files
So....
Build an installer app that:
-
Works out where your product folders need to be based upon the folders of the installer app:
- so our App is called Fred, our installer is called FredInstaller so, our installer reads the app data folder for itself, lets say this is:
C:/Users/DabDab/AppData/Roaming/DabAndCo/FredInstaller
So Fred's AppData folder is:
C:/Users/DabDab/AppData/Roaming/DabAndCo/Fred
- Asks the user to define the location of the samples (if your product is using samples)
- Reads a manifest file - that tells it a list of types of things to install: like Samples, Audio Files, Presets, VST3s, AUs, AAX files etc. where each of these things needs to be unzipped to and the name of the zip file containing each of these type of things
Here's a simple example of a json manifest file:
var manifest = [ { "DataType" : VST3, "Location" : VST3LOCATION, "WindowsZipName" : ["Fred01.zip"], "MacOSZipName" : ["Fred02.zip"], "MegaBytesRequired" : 1 }, { "DataType" : AU, "Location" : AULOCATION, "WindowsZipName" : ["UNUSED"], "MacOSZipName" : ["Fred03.zip"], "MegaBytesRequired" : 1 }, { "DataType" : CHFILES, "Location" : USERLOCATION, "WindowsZipName" : ["FredData04.zip","FredData05.zip","FredData06.zip"], "MacOSZipName" : ["FredData04.zip","FredData05.zip","FredData06.zip"], "MegaBytesRequired" : 2600 }, { "DataType" : METAFILES, "Location" : APPDATALOCATION, "WindowsZipName" : ["FredData07.zip"], "MacOSZipName" : ["FredData07.zip"], "MegaBytesRequired" : 1 }, { "DataType" : WAVFILES, "Location" : AUDIOFILESLOCATION, "WindowsZipName" : ["FredData08.zip"], "MacOSZipName" : ["FredData08.zip"], "MegaBytesRequired" : 26 }, { "DataType" : PRESETFILES, "Location" : PRESETLOCATION, "WindowsZipName" : ["FredData09.zip"], "MacOSZipName" : ["FredData09.zip"], "MegaBytesRequired" : 13 } ];
-
Asks the user for the folder containing the install zip files
-
Gets a list of zip files in the folder
-
For each zip - looks in the manifest to see where this needs unzipping to, and unzips it there
Done...
Of course its a bit more complex than this... but if its all too daunting then pm me about licensing...
-
@Lindon interesting! Thanks for the info!
-
@Lindon But what about the installer for the installer app?
-
@d-healey said in Setup BG Images or Custom Button etc theme for Inno setup:
@Lindon But what about the installer for the installer app?
wha!??? boggle boggle...
-
@Lindon Presumably you have to get the user to install your HISE based installer before they can use it?
-
@d-healey said in Setup BG Images or Custom Button etc theme for Inno setup:
@Lindon Presumably you have to get the user to install your HISE based installer before they can use it?
They download the installer, unzip it and run it...thats it....here's one at the start:
-
@Lindon nice
-
@Lindon Excellent. I had no idea about it. I will try to implement from your help. If I need any help, I will let you know. Thank you :)
-
@Lindon Can you help me a little more ?.. I have know idea where to start from. I have an example VST3 and I would like to deliver the VST3 as an EXE file through HISE. The VST3 will be installed on end users C:\Program Files\Common Files\VST3 location. How will I do that ? can you send me a little Example or a Snippet ?
-
@DabDab said in Setup BG Images or Custom Button etc theme for Inno setup:
@Lindon Can you help me a little more ?.. I have know idea where to start from. I have an example VST3 and I would like to deliver the VST3 as an EXE file through HISE. The VST3 will be installed on end users C:\Program Files\Common Files\VST3 location. How will I do that ? can you send me a little Example or a Snippet ?
First VST3 files will never be delivered as an exe file, they are plugins not executables...
So if you zip up your vst3 file, lets call it MyProductVST3.zip, what you are looking for your executable HISE app to do is unzip it into the folder you mentioned, so go look at the file api:
https://docs.hise.audio/scripting/scripting-api/file/index.html#extractzipfile
so start with some small zip file and see if you can work out how to find it
hint:
https://docs.hise.audio/scripting/scripting-api/filesystem/index.html#browsefordirectory
followed by:
https://docs.hise.audio/scripting/scripting-api/filesystem/index.html#findfiles
then use extractzipfile to extract the zip(s) you just found.
-
Tip for the next stage of your development:
Eventually you are going to need to change the name of all your zip files - as Safari downloads and unzips them - which is not what you want on the mac so change
MyProductVST3.zip
to
MyProductVST3.dab
the extractfiles command doesn't need the file extension to be zip - it will gladly unzip any file (that is really a zip) to wherever you want it...
-
@Lindon Thak you : ) I will try to implement it.
-
@Lindon Thanks buddy.
-
@Lindon @Lindon Tried but didn't work .. what am I doing wrong?
Content.makeFrontInterface(300, 200); //const downloads= FileSystem.getFolder(FileSystem.Desktop); // Worked const location = FileSystem.getFolder(FileSystem.Desktop); // Location of Zip File const var vst3 = FileSystem.fromAbsolutePath("C:\Program Files\Common Files\VST3"); const var Extract = Content.getComponent("Extract"); const var label = Content.getComponent("label"); // Extract Zip to... VST3 Location e.g C:\Program Files\Common Files\VST3 inline function onExtractControl(component, value) { if(value) { // local f = downloads.getChildFile("Testy.zip"); // Worked local f = location.getChildFile("Testy.zip"); f.extractZipFile(location,true,extractCallback); // Want to extract file in VST3 } }; Content.getComponent("Extract").setControlCallback(onExtractControl); // Function function extractcallback(obj) { if(obj.Status ==1) { label.set("text","Extraction Started:"+obj.CurrentFile); // Didn't Work } if(obj.Status ==2) label.set("text","Extraction Finished"); } // Browse App Data inline function onBrowseControl(component, value) { if(value) { //FileSystem.getFolder(FileSystem.browseForDirectory(FileSystem.AppData,function(){})); FileSystem.getFolder(FileSystem.fromAbsolutePath("C:\Program Files\Common Files\VST3")); // Not working, I want to open VST3 directory } }; Content.getComponent("Browse").setControlCallback(onBrowseControl);