Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Installer GUI No. 2 - Idea

Sign in to follow this  


In part one, I wrote a little on my opinion of the current state of GUIs in installers. This entry is about taking a different approach, and why I think it needs to be taken.

Of course, everything listed here is intended to be universal across platforms.


The first method I decided to take a look at was the most traditional - launching the installer by double clicking.

I decided that wizards were going to have to go as the default method of installing software. While they do have their place, as I have commented before they are not necessary for most installations.

The primary goal of the design is to take out as much of the delay and redundant clicking between launching the installer and getting down to the meat and bones of the job as possible. As well as just being annoying, there is also the problem of that "one click too many", where you accidentally do something you didn't mean to.

I also wanted to remove the disjointedness and immeasureability that exists when there are installers bundled within installers. Having another window pop up after one is complete only to start another installation process can be annoying, as you have no real indication of how far through you are.

So what I have in mind is something far more akin to inserting data onto a web form, with default values already in place. The most important options are available to you up front, with other options kept out of the way where most users needn't concern themselves with them. At this moment, the option not presented up front is pretty much just the list of components that will be installed. Options that are presented up front are where the application will be installed to, shortcut options, and the license agreement.

Apart from these, there are three other buttons presented to the user, the Cancel button, the Change Options button, and the Install Now button. By keeping buttons that do indivisual tasks, it makes it a lot harder for the user to accidently do something they don't mean to.

The only thing that I admit seems to fit the idea, but still doesn't sit very comfortably with me is license agreement. As it stands, what I have is a checkbox that the user must check to be able to proceed with the installation, and a link that leads to the license. This has the side effect of the user just being able to check the box without reading the agreement at all (just in case any of us are under the illusion that any do anyway). Unfortunatly, I can't think of a solution that gives the license up there that doesn't either break the flow, or revert back to the wizard structure. Perhaps someone will be able to suggest something.


To help with this section of the entry, I put together a (very) quick demo that should help people see the benefits of what I am proposing. Created with C# 2005, you will need to have the .NET 2.0 framework installed on your system. Not everything works as advertised, but it should be enough to help get the point across.

Download here. Any and all feedback is much appreciated.

Happy little bushes

Simply double clicking on the file needn't be the only way to launch an installation.

As such, all supported installation features will be accessible from a context menu, available on your favourite file manager by means of your favourite context menu access method. Opening this menu will give the options:

  • Install - Launches the installer as if it had been double clicked.

  • Install Here - Launches the installer, changing only the value of the target directory from the default value to the path of the directory the file is currently in.

  • Repair - Launches the installer in Repair mode.

  • Uninstall - Uninstalls the application.

This is hardly revolutionary, Windows Installer offers the same functionality with msi files (this is usually little noticed, since it seems to be traditional to wrap the msi files in an exe). The only new option is the Install Here option.

One common complaint that I have heard is that a lot of users would prefer to bypass the fuss of a GUI altogether. The most common way they would prefer to set up their software is in the same manner they extract files from their compressed archive files.

One way that we can look at this is to allow users to drag the installation file to the folder they want to install into with the right-click button, and allow them to install the application into that folder with the same ease they would unzip a file.

Bringing up the menu in this way should give a slightly altered version of the Install Here option, called Install Here Now. This will allow the user to launch an installation that uses the folder the file has been dragged into as the target folder, and proceed straight to the installation using the default values.

Feedback or questions?
Sign in to follow this  


Recommended Comments

After spending several days logging remotely into other people's computers to run an installer, I can personally tell you that you'll need a -JustFuckingInstallTheGoddamnedThing switch that installs with default values.

Then I can write a batch file to install it, making up for Windows' pitiful graphical scripting support.

Share this comment

Link to comment
Looks good.

You're definitely on the right track in limiting the amount of input needed from the user. A feature I'd personally like is for the installation to be done in the background, and just pop up a little message (similar to Messenger) when it's done.

I had a bit of a play around with the Forms Designer and came up with:

It makes the UI a bit more cramped, but at least the EULA is on the main screen. You could probably further group the EULA and the controls together to make it appear more uniform.

EDIT: Took another crack at it:

Anyway, that's my $0.02.

Share this comment

Link to comment
takingsometime - Wow, nice job. I'll have to reconstruct those myself when I get home and see how it works with large blocks of text, but so far I'm liking it. Thanks for the suggestion.

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!