How do I make my program installable?

I mean I want to have all the files (exe file, images, dll-s) in a single file and when you open it it shows the terms of use, where do you want to instal it..., then it would extract it to that folder. Like in all the real apps.

I would also like to know how to make a shortcut to the game on desktop and how to do that for all users?
And I'm also interested in how do programs make themselves start with windows. I would really like to know how to make my program do that.
Use an installer, like NSIS or Inno Setup, both are free to use and widely used.
What is the difference?
Which one should I use?
Which one do you use?
Topic archived. No new replies allowed.