ITSA - Mass Silent installer - Free Open source
Hello Showcase and Release Section!
A few days ago a very good friend created something called ITSA, Install That Sh*t Already.
It's a mass silent installer, got a new windows and hate installing programs? Then this is a program you would like to download.
The programs that are used a lot daily are added, for example:
Chrome
Notepad++
Steam
VLC
Spotify
Skype
Firefox
Dropbox
And many many more!
He is still working on this project, but it's great that he is making this, there are several other programs that can do this installing, but you have to pay for these programs.
He will add more programs that are used daily!
He is also working on new features, currently there is no option to select where you would like to install your programs, it uses the default HDD where windows is on.
It's open source, you can download the source and the .exe here:
https://github.com/EaterOfCode/ITSA
100% Credits for: EaterOfCode
Re: ITSA - Mass Silent installer - Free Open source
wait this for window 8 only?
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
BDSX
wait this for window 8 only?
No it's not. Just has the looks.
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
BDSX
wait this for window 8 only?
App.config:
PHP Code:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
No, it should run for Windows 7 and 8, since it's build with .NET 4.5.
It will work with desktop programs and it will not work for Windows 8 metro apps.
InstallingApp.cs:
PHP Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace ITSA.Objects
{
public class InstallingApp : INotifyPropertyChanged
{
public App Origin { get; set; }
public double DownloadPercentage { get; set; }
public string Status { get; set; }
private string TempName;
public void Start()
{
WebClient wc = new WebClient();
TempName = System.IO.Path.GetTempPath() + '\\' + Origin.Title + '.' + Origin.Extension;
wc.DownloadFileCompleted += wc_DownloadFileCompleted;
wc.DownloadProgressChanged += wc_DownloadProgressChanged;
wc.DownloadFileAsync(Origin.DownloadUriForThisSystem, TempName);
Status = "Downloading";
NotifyPropertyChanged("Status");
}
void wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
DownloadPercentage = e.ProgressPercentage;
NotifyPropertyChanged("DownloadPercentage");
}
void wc_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
Status = "Installing";
NotifyPropertyChanged("Status");
DownloadPercentage = 100;
NotifyPropertyChanged("DownloadPercentage");
Install();
}
public void Install()
{
ProcessStartInfo psi = new ProcessStartInfo();
if (Origin.InstallCommand[0] == '{')
{
psi.FileName = TempName;
psi.Arguments = String.Format(Origin.InstallCommand, "").Trim();
}
else
{
psi.UseShellExecute = true;
string fullCommand = String.Format(Origin.InstallCommand, '"' + TempName + '"');
int firstSplit = fullCommand.IndexOf(' ');
psi.FileName = fullCommand.Substring(0, firstSplit).TrimEnd();
psi.Arguments = fullCommand.Substring(firstSplit).TrimStart();
}
Process p = new Process()
{
StartInfo = psi,
EnableRaisingEvents = true
};
p.Exited += (sender, e) =>
{
Status = p.ExitCode == 0 ? "Completed" : "Error?";
NotifyPropertyChanged("Status");
if (p.ExitCode != 0 && System.Windows.MessageBox.Show("The installation of '" + Origin.Title + "' may have failed :(\r\nDo you want to try to install it yourself?", "Oops", System.Windows.MessageBoxButton.YesNo) == System.Windows.MessageBoxResult.Yes)
{
try
{
Process.Start(TempName);
}
catch
{
}
}
};
try
{
p.Start();
}
catch (Exception e)
{
Status = "Broken";
NotifyPropertyChanged("Status");
if (System.Windows.MessageBox.Show("The installation of '" + Origin.Title + "' is broken :(\r\nDo you want to try downloading it yourself? (it may be that the download link is pointing to a page)", "Oops", System.Windows.MessageBoxButton.YesNo) == System.Windows.MessageBoxResult.Yes)
{
Process.Start(Origin.DownloadUriForThisSystem.AbsoluteUri);
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
}
It's just downloading and starting the setups in silent shell mode with raising events set to true. So it will not work for some installer engines I bet.
I would not pay for it, specially when I got the source now. He did not even use more than one project, simple as it is, it has not much logic, that's why.
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
שเ๒єtгเ๒є
App.config:
PHP Code:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
No, it should run for Windows 7 and 8, since it's build with .NET 4.5.
It will work with desktop programs and it will not work for Windows 8 metro apps.
InstallingApp.cs:
PHP Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace ITSA.Objects
{
public class InstallingApp : INotifyPropertyChanged
{
public App Origin { get; set; }
public double DownloadPercentage { get; set; }
public string Status { get; set; }
private string TempName;
public void Start()
{
WebClient wc = new WebClient();
TempName = System.IO.Path.GetTempPath() + '\\' + Origin.Title + '.' + Origin.Extension;
wc.DownloadFileCompleted += wc_DownloadFileCompleted;
wc.DownloadProgressChanged += wc_DownloadProgressChanged;
wc.DownloadFileAsync(Origin.DownloadUriForThisSystem, TempName);
Status = "Downloading";
NotifyPropertyChanged("Status");
}
void wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
DownloadPercentage = e.ProgressPercentage;
NotifyPropertyChanged("DownloadPercentage");
}
void wc_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
Status = "Installing";
NotifyPropertyChanged("Status");
DownloadPercentage = 100;
NotifyPropertyChanged("DownloadPercentage");
Install();
}
public void Install()
{
ProcessStartInfo psi = new ProcessStartInfo();
if (Origin.InstallCommand[0] == '{')
{
psi.FileName = TempName;
psi.Arguments = String.Format(Origin.InstallCommand, "").Trim();
}
else
{
psi.UseShellExecute = true;
string fullCommand = String.Format(Origin.InstallCommand, '"' + TempName + '"');
int firstSplit = fullCommand.IndexOf(' ');
psi.FileName = fullCommand.Substring(0, firstSplit).TrimEnd();
psi.Arguments = fullCommand.Substring(firstSplit).TrimStart();
}
Process p = new Process()
{
StartInfo = psi,
EnableRaisingEvents = true
};
p.Exited += (sender, e) =>
{
Status = p.ExitCode == 0 ? "Completed" : "Error?";
NotifyPropertyChanged("Status");
if (p.ExitCode != 0 && System.Windows.MessageBox.Show("The installation of '" + Origin.Title + "' may have failed :(\r\nDo you want to try to install it yourself?", "Oops", System.Windows.MessageBoxButton.YesNo) == System.Windows.MessageBoxResult.Yes)
{
try
{
Process.Start(TempName);
}
catch
{
}
}
};
try
{
p.Start();
}
catch (Exception e)
{
Status = "Broken";
NotifyPropertyChanged("Status");
if (System.Windows.MessageBox.Show("The installation of '" + Origin.Title + "' is broken :(\r\nDo you want to try downloading it yourself? (it may be that the download link is pointing to a page)", "Oops", System.Windows.MessageBoxButton.YesNo) == System.Windows.MessageBoxResult.Yes)
{
Process.Start(Origin.DownloadUriForThisSystem.AbsoluteUri);
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
}
It's just downloading and starting the setups in silent shell mode with raising events set to true. So it will not work for some installer engines I bet.
I would not pay for it, specially when I got the source now. He did not even use more than one project, simple as it is, it has not much logic, that's why.
He is still improving, it's just a fun project also.
There are a few websites that have this kind of program but then payed.
Feel free to give suggestions btw ^^
Re: ITSA - Mass Silent installer - Free Open source
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
jur13n
Although it has a much larger list to it's name, the GUI looks too simplistic and I'm not a huge fan of it.
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
jur13n
Doesn't matter there is something like it already, this is open source also. Big diffrence if you ask me. And ew, when did that website get designed? 1995?
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
DriftCity
Doesn't matter there is something like it already, this is open source also. Big diffrence if you ask me. And ew, when did that website get designed? 1995?
what is the diffence i like the website, easy and simple to use.
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
DriftCity
Doesn't matter there is something like it already, this is open source also. Big diffrence if you ask me. And ew, when did that website get designed? 1995?
Let the website out of the game, what did it do to you? D=
It's simple and fine. :zippy: *website protection*
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
שเ๒єtгเ๒є
App.config:
PHP Code:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
No, it should run for Windows 7 and 8, since it's build with .NET 4.5.
It will work with desktop programs and it will not work for Windows 8 metro apps.
InstallingApp.cs:
PHP Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace ITSA.Objects
{
public class InstallingApp : INotifyPropertyChanged
{
public App Origin { get; set; }
public double DownloadPercentage { get; set; }
public string Status { get; set; }
private string TempName;
public void Start()
{
WebClient wc = new WebClient();
TempName = System.IO.Path.GetTempPath() + '\\' + Origin.Title + '.' + Origin.Extension;
wc.DownloadFileCompleted += wc_DownloadFileCompleted;
wc.DownloadProgressChanged += wc_DownloadProgressChanged;
wc.DownloadFileAsync(Origin.DownloadUriForThisSystem, TempName);
Status = "Downloading";
NotifyPropertyChanged("Status");
}
void wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
DownloadPercentage = e.ProgressPercentage;
NotifyPropertyChanged("DownloadPercentage");
}
void wc_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
Status = "Installing";
NotifyPropertyChanged("Status");
DownloadPercentage = 100;
NotifyPropertyChanged("DownloadPercentage");
Install();
}
public void Install()
{
ProcessStartInfo psi = new ProcessStartInfo();
if (Origin.InstallCommand[0] == '{')
{
psi.FileName = TempName;
psi.Arguments = String.Format(Origin.InstallCommand, "").Trim();
}
else
{
psi.UseShellExecute = true;
string fullCommand = String.Format(Origin.InstallCommand, '"' + TempName + '"');
int firstSplit = fullCommand.IndexOf(' ');
psi.FileName = fullCommand.Substring(0, firstSplit).TrimEnd();
psi.Arguments = fullCommand.Substring(firstSplit).TrimStart();
}
Process p = new Process()
{
StartInfo = psi,
EnableRaisingEvents = true
};
p.Exited += (sender, e) =>
{
Status = p.ExitCode == 0 ? "Completed" : "Error?";
NotifyPropertyChanged("Status");
if (p.ExitCode != 0 && System.Windows.MessageBox.Show("The installation of '" + Origin.Title + "' may have failed :(\r\nDo you want to try to install it yourself?", "Oops", System.Windows.MessageBoxButton.YesNo) == System.Windows.MessageBoxResult.Yes)
{
try
{
Process.Start(TempName);
}
catch
{
}
}
};
try
{
p.Start();
}
catch (Exception e)
{
Status = "Broken";
NotifyPropertyChanged("Status");
if (System.Windows.MessageBox.Show("The installation of '" + Origin.Title + "' is broken :(\r\nDo you want to try downloading it yourself? (it may be that the download link is pointing to a page)", "Oops", System.Windows.MessageBoxButton.YesNo) == System.Windows.MessageBoxResult.Yes)
{
Process.Start(Origin.DownloadUriForThisSystem.AbsoluteUri);
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
}
It's just downloading and starting the setups in silent shell mode with raising events set to true. So it will not work for some installer engines I bet.
I would not pay for it, specially when I got the source now. He did not even use more than one project, simple as it is, it has not much logic, that's why.
I think you're talking about the engines which download stuff first? because most times those just download an full installation file, which I do now in the app, and if it just doesn't want to work, I just give a link to the install and put a star at the end of the name ;)
If there are any other install engines that won't work, please report it :) then I will fix it for that
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
EaterOfCode
I think you're talking about the engines which download stuff first?
In fact I was talking about your method and the installer cases you download. Not every installer is the same, I know of several installers that are not possible to run in shell mode automatically. Most installers need to done by opening and setting the path etc. Only msi files can install in shell mode without any prompt by the user always.
There are tons of programs in the world wide web, I do not bet you will add all of them that are not working in shell mode by hand. ;)
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
שเ๒єtгเ๒є
In fact I was talking about your method and the installer cases you download. Not every installer is the same, I know of several installers that are not possible to run in shell mode automatically. Most installers need to done by opening and setting the path etc. Only msi files can install in shell mode without any prompt by the user always.
There are tons of programs in the world wide web, I do not bet you will add all of them that are not working in shell mode by hand. ;)
Let's get this straight first: UseShellExecute is only true because it then uses the PATH environment variable to look up the location of the "file" I call, so now I can call msiexec for example
What you're talking about is the silent install command and yes that's true I can't fix all those. And Im not gonna fix them either. Those get a star behind the name (which means I can't silently install them). This app is mainly to make it easier to install all your stuff when you (re-)installed your pc. It can easily save 1-3 hours time to find all the downloads and install them. It's not a Program DB just a boost for your fresh install ;) I real life tested it 2 days ago, it works. (but Spotify is a bitch. "I DONT WANT ADMINISTRATOR RIGHTS EWWW NOOO" fixed it already tho)
Re: ITSA - Mass Silent installer - Free Open source
good to hear, then keep it up and good luck on your project. =) *admin rights? manifest ftw*
Re: ITSA - Mass Silent installer - Free Open source
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
Komakech
Although it has a much larger list to it's name, the GUI looks too simplistic and I'm not a huge fan of it.
It's a silent installer, who cares about gui?
Quote:
Originally Posted by
DriftCity
Doesn't matter there is something like it already, this is open source also. Big diffrence if you ask me. And ew, when did that website get designed? 1995?
Again, who cares? it's understandable and it does it's purpose
Quote:
Originally Posted by
BDSX
what is the diffence i like the website, easy and simple to use.
Exactly, it completes it's purpose
On-topic:
I find it a bit useless, because not only ninite but even more silent installers are released on the web with big program lists.
not to mention you can request programs to be added.
Re: ITSA - Mass Silent installer - Free Open source
Quote:
Originally Posted by
jur13n
I find it a bit useless, because not only ninite but even more silent installers are released on the web with big program lists.
not to mention you can request programs to be added.
we shouldn't really question the "usefulness" of an application because like every one say there are more then one of every one program out there, but what the program can do extra, faster or even better.