Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows
RunOnceEx has the following features:
- Status: A dialog box is displayed while the items contained in the registry key are being processed. The entries to be processed are grouped into sections and the dialog box highlights the current section being processed. You can disable the status dialog box feature.
- Performance: The majority of the commands contained in the Run and RunOnce registry keys create separate processes, which is inefficient. The RunOnceEx registry key does not create a separate process. The RunOnceEx registry key also supports a dependency list of DLLs that remain loaded while either all the sections or some of the sections are being processed.
- Error Handling: If an exception occurs while calling a function in a DLL, the exception is caught and an error dialog box is displayed to the user. You can suppress this error dialog box by using a flag in the RunOnceEx registry key. You can also set a flag to enable log errors and run the RunOnceEx registry key.
- Deterministic: The RunOnceEx registry key sorts the entries and sections alphabetically to force a deterministic order.
The Runonce.exe and Runonce.exe.mui files are located at the following locations:
32-bit systems:
--------------------
C:\Windows\System32\runonce.exe
Windows Vista and higher:
C:\Windows\System32\en-US\runonce.exe.mui
64-bit systems:
--------------------
64-bit processes:
C:\Windows\System32\runonce.exe
Windows Vista and higher:
C:\Windows\System32\en-US\runonce.exe.mui
32-bit processes:
C:\Windows\SysWOW64\runonce.exe
Windows Vista and higher:
C:\Windows\SysWOW64\en-US\runonce.exe.mui
In Windows 2000, Windows XP and Windows Server 2003, the RunOnceEx registry key
exists by default:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
In Windows Vista, Windows Server 2008, Windows 7 and Windows Server 2008 R2. the RunOnceEx registry key does not exist by default:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx key
RunOnceEx Sample to Run Notepad
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceExTitle
= "My Setup Title"
Flags
= dword:00000002
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001RunMyApp
= "||notepad.exe"
Sample Syntax
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceExFlags
= dword:00000000
Title
= "Status Dialog Box Title"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\Depend0001
= "
xxx
1"
000
X
= "
xxxx
"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001Entry1
= "MyApp1.exe"
Entry
X
= "MyApp2.exe"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\000
xNotes- "xxx1, xxxx" is a dynamic-link library (DLL) or .ocx file name (such as My.ocx or My.dll).
- "0001, 000x" are section names. Section names can be alphanumeric.
- "entry1, entryX" are registry string values that point to a program file to run.
Definition of Values and Subkeys
Flags
is a DWORD value located in the
RunOnceEx
key to enable/disable the following settings.
Value | Function | Function definition |
---|
0x00000000 | Default | All functions are disabled |
0x00000004 | Check Shell Status | Verifies the shell is ready to accept OLE commands |
0x00000008 | No Error Dialogs | Error dialog boxes are not displayed |
0x00000010 | Create Error Log File | Create C:\Windows\RunOnceEx.err file if errors occur |
0x00000020 | Create Execution Log File | Create a C:\Windows\RunOnceEx.log file with status of commands |
0x00000040 | No Exception Trapping | Does not trap exceptions that occur when registering DLLs |
0x00000080 | No Status Dialog | Status dialog box is not displayed while RunOnceEx runs |
The values are cumulative. If you want "No Status Dialog" and "Create Error Log File," set Flags to hexadecimal 90 (80 + 10).
Title is a STRING value that you can use to fill in the Status dialog box title.
The
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\Depend
registry key contains the .dll files and the .ocx files that should be kept loaded in the memory while all sections of RunOnceEx are running.
The
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\000X registry keys contain entries to be run. These sections are run in alphabetical order. Therefore, the
...\RunOnceEx\0001
section is processed before the
...\RunOnceEx\0002
section.
The string values within a
...RunOnceEx\000
x
section contain the commands that should be run for the section. The format is:
"
DllFileName
|
FunctionName
|
CommandLineArguements
"
-or-
"||
command parameters
"
For example:
"Line1" = "||my.exe -quiet -url http://www.microsoft.com/"
"Line2" = "shdocvw.dll|DllRegisterServer"
Line1 runs the "my.exe -quiet -url http://www.microsoft.com/" command line. Line2 runs the DllRegisterServer function in Shdocvw.dll.
The
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\000
x
\Depend
registry key contains the .dll files and the .ocx files that should be kept in memory while section
000
x
is running.
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
232487
Description of the RunOnceEx Registry Key
232509 Syntax for the RunOnceEx Registry Key
For more information about the RunOnce Request, visit the following Microsoft Web site:
For more information about, visit the following Microsoft Web site: