A program launch sequencer for Windows. 

Ignition.zip, Size: 2,669 bytes.
CRC32/MD5 codes: 7DE58B18/7CC38952152CE2917EF95FD94AEE23AA.

This method solves unpredictability in the Windows 'Run' entry in the registry. Several programs are usually listed there, and also some in the 'StartUp' directory too. I use W98 (very heavily modified) but these details apply to WXP and probably to later systems too. The result could be a mess, with no way to control or even predict exactly which program starts first.

The consequences of this mess could be serious, a program that needed time to initialise safely might not get that time! The least problematic result was that at least one program just fails to load and must be launched manually after the system stabilises soon after beginning to show the 'desktop' display, and the order of icons in the 'system tray' can be annoyingly inconsistent. System boot times can be made long when programs try to start at the same time because they fight. Well, they do if they need to access the same disk at the same moment, and they usually do!

The only practical way to solve all possible problems is to launch programs in strict sequence, waiting for each to be loaded before trying to launch the next, and to add small delays if needed to give any program extra time if it needs it. The following details describe how to do this. Start by emptying the 'StartUp' directory, and leave it empty forever. Then add the following detail to the registry:



                "Launch Sequencer"="C:\\WINDOWS\\Ignition.exe"

The first long line DELETES the key, so make sure you save anything you want to transfer to Ignition.cfg before adding that registry code (also saving notes on StartUp directory content too, before deleting all the shortcuts in it). Modify that path to Ignition.exe if you want it to live somewhere else. The header 'Regedit4' is the old way. It works on ALL Win32 systems, and probably on Win64 too, but I have no way to test it.

What follows is an example IGNITION.CFG file that defines the order of launch, and any delays added between events. This file must be placed beside Ignition.exe so it will be found when needed. The content below describes how it works, saving some extra typing here... If the file is missing, Ignition.exe will make a new one, but it will contain nothing but the explanatory paragraphs shown below. This example is a faster way to learn what to do:

  This file defines a program launch sequence while the operating system starts. Each launch waits
  for the previous one to end by becoming ready for user input, or by timing out after one second.
  If a program fails to start correctly, or if it affects later launches, a pause may be inserted.
  To avoid problems, all launches must start here, not from the Startup directory or the registry.

  Each line may be a command, or a number of milliseconds to pause, or a comment, or be empty.

  Commands are full program paths written without quotes. The drive letter must begin each line.
  Commands can use long names, spaces, arguments, switches, but no comment or any other content.
  Pause durations may be indented, and may be followed by a comment to indicate their purpose.
  Commands may be indented to preserve them while making them inoperable, acting as comments.

  C:\WINDOWS\IconText.exe /C00A040
  ;C:\WINDOWS\IconText.exe /CFF8000
  ;2000 ;Two second delay, not needed.
  rem C:\WINDOWS\SYSTEM\Pointer\ps2rate.exe 100 1
  E:\NETWORK\zFTP Server\zFTPserve.exe

  ;C:\WINDOWS\scanregw.exe /autorun
  ;Rundll32.exe powrprof.dll,LoadCurrentPwrScheme

Be aware that some programs and command arguments MUST have quotes, but that's a detail specific to a program. The phrase "written without quotes" in that file's text just means no extra quotes are needed. The aim is to make sure that commands appear exactly as they might be written in a shortcut or on a commandline, with no extra complications.

Knowing what all of those programs are is not important, but there may be a few points of interest. :) What IS important is that several ways of making comments are used there, a 'rem', a few semicolons, and in the end section the 'NOT USED' is a comment because it lacks a colon in second place so cannot be a drive letter and path. The '2000' is a delay of two seconds, now commented out but it remains in case it ever became necessary again. It didn't. Whatever caused the need, the system works well enough now that no delays are used in that configuration. It is usually possible to eliminate them by careful testing of the order of launch. This is tedious but once it's done, it may never need changing again. Boot time will be optimised, and all programs will launch as intended.