Startup Programs on Windows Vista: Inside the Box
In prior versions of Windows, especially if the installation had many applications installed over the years, it was not easy to run a program or navigate the system shortly after booting. I remember fighting with my mouse or looking over at the system chassis to see if the hard disk light was still blinking frantically, wondering "Are we there yet?"
Now think about the ideal Windows startup experience. Perhaps you envision not only the desktop loading quickly, but having a system that is responsive immediately. This was one of the Windows Vista design goals, but how did we make it happen? Enter Windows Vista's new "boxing" feature. In Vista, applications started from common startup locations get automatically "boxed" for the first 60 seconds. The term "boxed" means it will run with reduced priority, yielding and giving precedence to other programs such as those manually launched by a user.
OK, so what does that mean in practical terms? If you think of all of the applications installed on your system, there is a very good chance that one or more of them is an application that launches at startup via the Run key in the registry (HKLM\Software\Microsoft\Windows\CurrentVersion\Run). On pre-Windows Vista operating systems, applications that added themselves to this key tended to think of themselves as more important than any other applications. The net result was contention when all of these applications were battling with each other to start up first. So when a user tried to launch an application such as Microsoft Outlook, or Internet Explorer themselves when they logged on initially, the application appeared to be running very slowly and seemed unresponsive. The application was actually being stepped on by the startup applications fighting with each other to start.
Now, there are a couple of things to be aware of when dealing with “boxing applications”. The first is that you can disable this feature via a registry change. In the HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Advanced\DelayedApps key is a value called Delay_Sec. This value determines the amount of time that applications are “boxed”. By default, this value is set to 60 (decimal), which is 0x3c in hexadecimal. You can change this value to 0, which will disable the boxing feature. One thing to note here, is that in order to make this change, you will first have to take ownership of the DelayedApps key in the registry.
Finally, if you’re an application developer reading this, and wondering if you can programmatically circumvent this feature, the short answer is “No”. Check out the post on the Vista Compatibility Team blog regarding this.
- Aaron Maxwell
I joined Microsoft as a Support Engineer on the Performance team in September 2005. Prior to that I spent a couple of years working the late night shift on our Platforms 24x7 team. Working for Microsoft was always a dream job - so I am living the dream! I was on the Windows Vista Beta team in 2006, which was one of the coolest projects I have ever worked on, until I took on the task of driving the AskPerf Blog.
As you can tell by my logo, I am a huge Manchester United fan and I have successfully managed to brainwash my two daughters into sharing my passion for the Red Devils much to the dismay of their mother! I also coach both my daughters' soccer teams. In addition I am an avid MMO gamer, and have an extensive DVD movie collection.