A high-level, general-purpose programming language, created as an extension of the C programming language, that has object-oriented, generic, and functional features in addition to facilities for low-level memory manipulation.
Thanks for reaching out.
Yes. The ! prefix for RunOnce registry values is a documented Microsoft feature.
According to Microsoft documentation, when a RunOnce registry entry name starts with !, Windows does not delete the value before execution. This ensures the entry is removed only after the command runs successfully. If the command fails, the entry remains and will be retried on the next logon or startup.
This behavior is documented for the following registry paths:
-
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce -
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
Summary of behavior:
-
RunOncewithout!→ entry is removed before execution -
!RunOnce→ entry is removed after successful execution
This is intended for scenarios where reliability is important and the operation must retry if it fails.
References:
- Microsoft Run and RunOnce Registry Keys documentation
- Microsoft Q&A and Windows Driver documentation on RunOnce behavior.
Let us know if the issue persists after following these steps. I’ll be happy to assist further if needed. If the issue has been resolved, Kindly mark the provided solution as "Accept Answer", so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.