The Windows Desktop Update component implements the RunOnceEx registry key that provides the functionality described in this article. The Windows Desktop Update component is included with Windows 98 and Windows 2000. You can also install the Windows Desktop Update component with Microsoft Internet Explorer 4.0. Note that the syntax and format used for this key is different from the RunOnce key.
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Â
(http://kbalertz.com/Feedback.aspx?kbNumber=322756/
)
How to back up and restore the registry in Windows
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 = "
xxx1"
000X = "
xxxx"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001Entry1 = "MyApp1.exe"
EntryX = "MyApp2.exe"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\000x
...
Notes
- "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.
Collapse this tableExpand this table
| 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 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\000x 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\000x\Depend registry key contains the .dll files and the .ocx files that should be kept in memory while section
000x is running.