How to Write an INF


Credits

This guide was originally created and hosted by Crucifer [old, went the 404 way :-(].
Copies of this INF Guide can (still) be found at:

A MUST

    All Internet Explorer Administration Kit (IEAK) builds listed here are compatible with all Windows 32-bit and 64-bit operating systems (95, 98, ME, NT4, 2000, XP, 2003, Vista, 2008 + 7) and with MS Internet Explorer (IE) 4.x, 5.x, 6.0, 7.0 + 8.0:

    More guides, resources + downloads:

Overview

Here we will discuss only Windows 9x OSes (95, 98 + ME). Most INF + Self Extraction Directive (SED) file functions are actually similar in Windows NTx OSes (NT4, 2000, XP, 2003, Vista, 2008 + 7).
You can take advantage of the built-in setup engine (API) in Windows 95/98/ME [SETUP4.DLL, SETUPAPI.DLL + SETUPX.DLL and also ADVAPI32.DLL + ADVPACK.DLL (advanced Setup functions), all located in the %windir%\SYSTEM folder] by writing a setup script [a Setup INFormation file (INF)], and use various methods to execute the script. The advantages of using the built-in engine is size: the functions to copy files, add registry entries, create shortcuts etc. are already present in the Windows 95/98/ME operating systems, so you don't need to ship a separate setup engine, only an INF and the program files you want to install. Windows 95/98/ME INFs can be used to install and uninstall a particular component. However, a separate script is required for each.
The disadvantages of using the Windows 95/98/ME setup engine are inflexibility and lack of some features found in other setup programs. Windows INFs cannot prompt the user for a destination directory, it must be hard-coded in the INF. It also does not have the capability of executing enough logic in determining what is already on the user's machine, and eventually branching out accordingly.

Use INF Guide Offline

If you prefer to browse through this INF Guide offline, please download it [402 KB, English]:

    INF_WEB.ZIP

You need an unZIPping tool [free(ware)] to extract the files.
Then use your favorite web browser [free(ware)] to open index.htm .
Enjoy.

Authoring an INF

The easiest way to create an INF is to use an existing/sample INF as template, open it in Notepad [or better free(ware) replacement], and customize it for your own use. A pointer to a generic sample is provided below. Other good examples abound in the %windir%\INF [usually C:\WINDOWS\INF] folder on any Windows 95/98/ME machine. Ones that are especially good are WORDPAD.INF, APPLETS.INF + APPLETPP.INF .

Executing an INF

Once you have created an INF, there are a number of ways to execute the script: