3/27/2009
User32 provides the functionality to intercept every MessageBox function and automatically choose the default button. Not all message box windows are produced through the standard MessageBox function; therefore, this feature might not operate on all windows.
To instruct NTUSER to intercept messages, an additional key and values are required in the HKLM\System\CurrentControlSet\Control registry key. You might need to create the registry key and values on your system, as follows.
To set up your system to automatically reply to a message box without displaying it
-
In the HKLM\System\CurrentControlSet\Control registry key, create a new key named Error Message Instrument.
-
Under the Error Message Instrument key, add the values of type REG_DWORD from the following table.
|
Value
|
Data
|
Description
|
|---|
|
EnableDefaultReply
|
0x00000001
|
Enables the Enable Default Reply feature.
|
|
EnableLogging
|
0x00000001
|
Enables event logging.
|
-
Under the Error Message Instrument registry key, add one of the LogSeverity values of type REG_DWORD from the following table.
|
Value
|
Data
|
Description
|
|---|
|
LogSeverity
|
0x00000000 = EMI_SEVERITY_ALL
|
All message box events are logged.
|
|
LogSeverity
|
0x00000001 = EMI_SEVERITY_USER
|
Message box events with the dwStyle parameter defined are logged, including MB_USERICON, MB_ICONASTERISK, MB_ICONQUESTION, MB_ICONEXCLAMATION, and MB_ICONHAND.
|
|
LogSeverity
|
0x00000002 = EMI_SEVERITY_INFORMATION
|
Errors, warnings, questions, and information are logged. Message box events with no dwStyle parameter or dwStyle = MB_ICONUSER are not logged.
|
|
LogSeverity
|
0x00000003 = EMI_SEVERITY_QUESTION
|
Errors, warnings, and questions are logged. Information, events with no style, and user-defined severity levels are not logged.
|
|
LogSeverity
|
0x00000004 = EMI_SEVERITY_WARNING
|
Only errors and warnings are logged.
|
|
LogSeverity
|
0x00000005 = EMI_SEVERITY_ERROR. (EMI_SEVERITY_MAX_VALUE)
|
Only errors are logged.
|
To log message information to the event log
-
In the HKLM\System\CurrentControlSet\Services\EventLog\Application registry key, create a new key named Error Instrument.
-
Under the Error Instrument key, add the registry values from the following table.
|
Value
|
Type
|
Value
|
|---|
|
TypesSupported
|
REG_DWORD
|
0x00000007
|
|
EventMessageFile
|
REG_EXPAND_SZ
|
%SystemRoot%\System32\User32.dll
|
You must reboot your target system for the changes to take effect.

See Also