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

Share this post :