#11732: make suppress_crash_popup() work on Windows XP and Windows Server 2003.

This commit is contained in:
Ezio Melotti 2013-03-07 18:37:13 +02:00
parent 7d82c8621b
commit e846342f8a
1 changed files with 3 additions and 1 deletions

View File

@ -1911,10 +1911,12 @@ if sys.platform.startswith('win'):
def suppress_crash_popup():
"""Disable Windows Error Reporting dialogs using SetErrorMode."""
# see http://msdn.microsoft.com/en-us/library/windows/desktop/ms680621%28v=vs.85%29.aspx
# GetErrorMode is not available on Windows XP and Windows Server 2003,
# but SetErrorMode returns the previous value, so we can use that
import ctypes
k32 = ctypes.windll.kernel32
old_error_mode = k32.GetErrorMode()
SEM_NOGPFAULTERRORBOX = 0x02
old_error_mode = k32.SetErrorMode(SEM_NOGPFAULTERRORBOX)
k32.SetErrorMode(old_error_mode | SEM_NOGPFAULTERRORBOX)
try:
yield