Merged revisions 81640 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81640 | brian.curtin | 2010-06-01 08:29:13 -0500 (Tue, 01 Jun 2010) | 3 lines

  Fix #8618. Ask the Windows mixer API if there are any playback devices
  configured before attempting to test PlaySound.
........
This commit is contained in:
Brian Curtin 2010-06-01 13:42:48 +00:00
parent 7c7244bdef
commit 360878ffdd
1 changed files with 9 additions and 1 deletions

View File

@ -2,15 +2,23 @@
import unittest import unittest
from test import test_support from test import test_support
import winsound, time import time
import os import os
import subprocess import subprocess
import ctypes
winsound = test_support.import_module('winsound')
import _winreg import _winreg
def has_sound(sound): def has_sound(sound):
"""Find out if a particular event is configured with a default sound""" """Find out if a particular event is configured with a default sound"""
try: try:
# Ask the mixer API for the number of devices it knows about.
# When there are no devices, PlaySound will fail.
if ctypes.windll.winmm.mixerGetNumDevs() is 0:
return False
key = _winreg.OpenKeyEx(_winreg.HKEY_CURRENT_USER, key = _winreg.OpenKeyEx(_winreg.HKEY_CURRENT_USER,
"AppEvents\Schemes\Apps\.Default\{0}\.Default".format(sound)) "AppEvents\Schemes\Apps\.Default\{0}\.Default".format(sound))
value = _winreg.EnumValue(key, 0)[1] value = _winreg.EnumValue(key, 0)[1]