Run/RunOnce/RunOnceEx Registry Key
Run\RunOnce\RunOnceEx are documented ways to automatically run certain tasks when system startup or a user logs in.
Run\RunOnce keys are documented here:
Run and RunOnce Registry Keys
https://windowssdk.msdn.microsoft.com/en-us/library/ms723554.aspx
RunOnceEx is documented here:
Syntax for the RunOnceEx Registry Key
https://support.microsoft.com/default.aspx?kbid=232509
Description of the RunOnceEx Registry Key
https://support.microsoft.com/kb/310593
You can also specify RunOnce when install device drivers
KB 281820: INFO: Specifying RunOnce in Device INF Files
https://support.microsoft.com/default.aspx?scid=kb;EN-US;Q281820
Be careful about RunOnce registry key: It may run before system restart.
According to KB 281829, RunOnce registry key will run in the following cases:
1. At the end of installation through InstallFromHinfSection even in the cases where you must restart the computer.
2. After the default processing of DIF_INSTALLDEVICE even if you must restart the computer (with the exception of server-side processing).
3. After the system has been restarted.
This means, RunOnce registry key entries may be executed immediately after a device driver installation, which may happen at any given time.
If your RunOnce entry needs to be executed after certain event, make sure you write the RunOnce registry key after the event, or if you cannot do so, use RunOnceEx. Otherwise you may experience random failures.