||This article needs additional citations for verification. (October 2009)|
|A component of Microsoft Windows|
Program Manager in Windows for Workgroups 3.11
|Included with||Windows 3.0 to Windows XP Service Pack 1|
|Replaced by||Windows Explorer|
Program Manager is the shell of Windows 3.x and Windows NT 3.x operating systems. This shell exposed a task-oriented graphical user interface (GUI), consisting of icons (shortcuts for programs) arranged into program groups. It replaced MS-DOS Executive, a file manager, as the default Windows shell.
The program derives from the OS/2 1.2 program PMShell. This had the same icons as the Windows 3.0 program. Unlike the Windows versions, which are meant to illustrate the Multiple document interface, one can place groups or icons in a group, the groups in OS/2 were presented in a list. Running the OS/2 version in Presentation Manager for Windows will cause PMShell to read all of Windows groups, via DDE.
When executables were dropped into Program Manager from File Manager, Program Manager automatically used the executable's default icon embedded as data inside the .EXE file. Additionally, the Windows Setup program, which populated Program Manager with the standard icons of a fresh install, could also be used to add new icons in bulk after installation. Using SETUP /P from the command line, a standard layout could be installed on many machines in an enterprise using a single SETUP.INF configuration file. 
Beginning with Windows 3.1, Program Manager contained a StartUp group where users could place icons for programs and files such as Excel spreadsheets to be loaded when Windows starts.
The DOS Shell (DOSSHELL) program in PC-DOS and MS-DOS has a File Manager and a Program Manager, this program being run on the Windows DOSX extender. This program also supports nested groups inside groups. It is in part because of this that programs like Norton Commander offer a program launch menu.
In later versions of Microsoft Windows, starting with Windows 95 and Windows NT 4.0, Program Manager was replaced by Windows Explorer as the shell, more specifically the Start Menu which was part of the Shell, which took over organization and launching capabilities. However, Windows 95 still gave the user an option to choose which shell they preferred during setup. For backward compatibility with old applications, Program Manager was still included in later versions of Windows. It can be accessed by executing PROGMAN.EXE from the command line or Run dialog. The file is located in the Windows directory in older versions, or the System32 directory in Windows 2000. On any Windows version, it can be used as the default shell by specifying the Shell value in the registry at either HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon (per machine) or HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon (per user).
Today, Program Manager has little practical use beyond compatibility with pre-Windows 95 programs. Since Windows XP Service Pack 2, it has been reduced to a stub and a converter for Program Manager shortcuts to Windows Explorer shortcuts. Beginning with Windows Vista, PROGMAN.EXE, the executable, is no longer included with the system.
It is still possible to use the Program Manager in Windows XP Service Pack 2 or 3 (and Windows Vista, 7 and 8) by copying and replacing the Progman.exe executable with the executable from Windows 2000, XP Original Release or SP1. With the Windows 2000, XP Original Release or SP1 CD, one can expand it by typing expand -r D:\i386\progman.ex_ %Windir% at the command prompt (replacing D: with the CD-ROM drive letter). It is also possible to bypass the Windows File Protection and overwrite the Windows XP version of Program Manager completely. Alternatively, the file can be saved to a different location or using a different filename. If Windows XP SP2/SP3 has backed up previous files from Original Release/SP1, the backed up version can be accessed from: %Windir%\$NtServicePackUninstall$\Progman.exe
The Program Manager from ReactOS has most of the features of the Microsoft version.
Undocumented features 
Holding down the shift key while mousing FILE then EXIT WINDOWS will save the current configuration of Program Manager to PROGMAN.INI, including the position of all program group icons, assuming that auto-arrange has been disabled. This allowed Microsoft testers to try many different configurations, but the feature remained in the shipped version.