|
Tipp 0532
|
Soundkarten-Informationen auslesen
|
|
|
Autor/Einsender: Datum: |
|
Detlev Schubert 30.05.2007 |
|
Entwicklungsumgebung: |
|
VB 6 |
|
|
Im Bereich der Multimedia-Programmierung ist es heute unerlässlich
möglichst viele Informationen über die installierte Hardware zu
erfahren, um seinen Code auf den gewonnenen Informationen aufbauen zu
können. Hierzu bietet WinMM-API auch die entsprechenden
Möglichkeiten.
|
Diese Bibliothek ist allerdings so umfangreich, dass in diesem
Beispiel auch nur eine Handvoll Konstanten verwendet wurde, um die in
Deutschland gängigsten Soundkartenhersteller zu ermitteln zu können.
Die durch die Abfrage erlangten Informationen müssen dann lediglich
noch entsprechend aufbereitet werden.
|
|
|
Option Explicit
' dwFormats-Konstanten
Private Const WAVE_INVALIDFORMAT As Long = &H0&
Private Const WAVE_FORMAT_1M08 As Long = &H1&
Private Const WAVE_FORMAT_1S08 As Long = &H2&
Private Const WAVE_FORMAT_1M16 As Long = &H4&
Private Const WAVE_FORMAT_1S16 As Long = &H8&
Private Const WAVE_FORMAT_2M08 As Long = &H10&
Private Const WAVE_FORMAT_2S08 As Long = &H20&
Private Const WAVE_FORMAT_2M16 As Long = &H40&
Private Const WAVE_FORMAT_2S16 As Long = &H80&
Private Const WAVE_FORMAT_4M08 As Long = &H100&
Private Const WAVE_FORMAT_4S08 As Long = &H200&
Private Const WAVE_FORMAT_4M16 As Long = &H400&
Private Const WAVE_FORMAT_4S16 As Long = &H800&
' dwSupport-Konstanten
Private Const WAVECAPS_LRVOLUME = &H8
Private Const WAVECAPS_PITCH = &H1
Private Const WAVECAPS_PLAYBACKRATE = &H2
Private Const WAVECAPS_SYNC = &H10
Private Const WAVECAPS_SAMPLEACCURATE = &H20
Private Const WAVECAPS_VOLUME = &H4
' Quelle: http://msdn2.microsoft.com/en-us/library/ms713743.aspx
' einige HerstellerID-Konstanten
Private Const MM_MICROSOFT = 1 'Microsoft Corporation
Private Const MM_CREATIVE = 2 'Creative Labs, Inc
Private Const MM_MEDIAVISION = 3 'Media Vision, Inc.
Private Const MM_FUJITSU = 4 'Fujitsu Corp.
Private Const MM_ARTISOFT = 20 'Artisoft, Inc.
Private Const MM_IBM = 22 'IBM Corporation
Private Const MM_ROLAND = 24 'Roland
Private Const MM_NEC = 26 'NEC
Private Const MM_ATI = 27 'ATI
Private Const MM_WANGLABS = 28 'Wang Laboratories, Inc
Private Const MM_TANDY = 29 'Tandy Corporation
' weitere sind bei den angegebenen Quellen zu finden
' Quelle: http://msdn2.microsoft.com/en-us/library/ms709443.aspx
' Quelle: http://doc.ddart.net/msdn/header/include/mmreg.h.html
Private Declare Function waveOutGetNumDevs Lib _
"winmm.dll" () As Long
Private Declare Function waveOutGetDevCaps Lib _
"winmm.dll" Alias "waveOutGetDevCapsA" (ByVal uDeviceID _
As Long, lpCaps As WAVEOUTCAPS, ByVal uSize As Long) As Long
Private Type WAVEOUTCAPS
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * 32
dwFormats As Long
wChannels As Integer
dwSupport As Long
End Type
Private Sub Combo1_Click()
GetSoundCardInfo Combo1.ListIndex
End Sub
Private Sub Form_Load()
Dim intX As Integer
If waveOutGetNumDevs = 0 Then
Combo1.Enabled = False
Else
Combo1.Clear
For intX = 1 To waveOutGetNumDevs
GetSoundCardInfo intX - 1, True
Next
Combo1.ListIndex = Combo1.TopIndex
End If
Label2.Caption = Trim$(Str$(waveOutGetNumDevs))
End Sub
Private Sub GetSoundCardInfo(Index As Integer, _
Optional Liste As Boolean)
Dim Produkt As WAVEOUTCAPS 'Produktinformation
waveOutGetDevCaps Index, Produkt, Len(Produkt)
If Liste = True Then
Combo1.AddItem Produkt.szPname
Exit Sub
Else
'Eine Beispiel-Abfrage, weitere siehe Beispielprojekt
If CBool(Produkt.dwFormats And WAVE_FORMAT_4S16) Then
Label10.Caption = "44.1 kHz (16 Bit), Stereo"
End If
'Hersteller ID
Label4.Caption = Trim$(Str$(Produkt.wMid))
'Produkt ID
Label6.Caption = Trim$(Str$(Produkt.wPid))
'Version des Wave-Treibers
Label8.Caption = Trim$(Str$(HiByte(Produkt.vDriverVersion))) _
& "." & Trim$(Str$(LoByte(Produkt.vDriverVersion)))
End If
End Sub
Public Function LoByte(ByVal intInput As Integer) As Byte
LoByte = intInput And &HFF
End Function
Public Function HiByte(ByVal intInput As Integer) As Byte
HiByte = (intInput And &HFF00&) \ 256
End Function |
|
|
|
|
|
Das Download-Beispiel ist sehr ausführlich kommentiert. Auch sollten
die angegebenen Quellen besondere Beachtung geschenkt werden.
|
|
Windows-Version |
95 |
|
|
98 |
|
|
ME |
|
|
NT |
|
|
2000 |
|
|
XP |
|
|
Vista |
|
|
Win
7 |
|
|
|
VB-Version |
VBA 5 |
|
|
VBA 6 |
|
|
VB 4/16 |
|
|
VB 4/32 |
|
|
VB 5 |
|
|
VB 6 |
|
|
|
|
Download (4,1 kB)
|
Downloads bisher: [ 317 ]
|
|
|