]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
#11732: make suppress_crash_popup() work on Windows XP and Windows Server 2003.
authorEzio Melotti <ezio.melotti@gmail.com>
Thu, 7 Mar 2013 16:37:13 +0000 (18:37 +0200)
committerEzio Melotti <ezio.melotti@gmail.com>
Thu, 7 Mar 2013 16:37:13 +0000 (18:37 +0200)
Lib/test/support.py

index ba1206cbb45bc55c62ded3d68452ee441b5c651f..19989acf61893d93ac889165284a57f6d246cea9 100644 (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