Sicherlich kennen Sie Ressourcen-Dateien. In einer solchen Datei lassen sich u.a. Texte, Icons, Bitmaps und auch WAVE-Dateien speichern. Eine Ressourcen-Datei wird direkt ins Projekt eingebunden und befindet sich dann beim Erstellen der EXE-Datei mit in der ausführbaren Anwendung. Der Vorteil, Texte, Icons oder auch WAVE-Dateien in einer Ressourcen-Datei zu speichern - anstelle diese Daten als externe eigene Dateien zu verwenden - besteht vor allen Dingen darin, daß Sie quasi mit einer einzigen Anweisung auf die enthaltenen Ressourcen zugreifen können. Handelt es sich um Texte oder Bilder so verwenden Sie die VB-Funktion LoadResString bzw. LoadResPicture. Was aber, wenn es sich um eine WAVE-Datei zum Abspielen eines Sounds handelt? Hierfür gibt es die LoadResData-Funktion. Man übergibt der Funktion die entsprechende Ressourcen-Kennung (ID) und das Format, und erhält als Rückgabewert ein Byte-Array. Wie spielt man nun aber den Sound ab? Man hat ja nur ein Bytefeld - und die WinAPI-Funktion sndPlaySound erwartet doch (so denkt man zumindest) einen Dateinamen. Weit gefehlt! Deklariert man den ersten Parameter der API-Funktion als As Any, so kann der API-Funktion auch ein Byte-Datenfeld übergeben werden. Wichtig ist dann nur, daß uFlags (2. Parameter der API-Funktion) mit der Konstante SND_MEMORY verORt wird. Und hier die fertige Funktion ' zunächst die benötigten API-Deklarationen Private Declare Function sndPlaySound Lib "winmm" _ Alias "sndPlaySoundA" ( _ lpszSoundName As Any, _ ByVal uFlags As Long) As Long Private Const SND_SYNC = &H0 Private Const SND_ASYNC = &H1 Private Const SND_NODEFAULT = &H2 Private Const SND_MEMORY = &H4 ' WAVE aus Ressource-Datei abspielen Public Sub WaveFromRes(ByVal ResID As Long) Dim bWave() As Byte Dim uFlags As Long bWave = LoadResData(ResID, "WAVE") uFlags = SND_NODEFAULT Or SND_ASYNC Or SND_MEMORY Call sndPlaySound(bWave(0), uFlags) End Sub Innerhalb der Ressourcen-Datei muss dann die WAVE-Datei folgendermaßen eingebunden werden 1000 WAVE DISCARDABLE "test.wav" Im Programm erfolgt das Abspielen dann so: WaveFromRes 1000
Einschränkung Dieser Tipp wurde bereits 19.583 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevCommand 4.0 Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Tipp des Monats Mai 2024 Hermann Röttger Wochentage eines Datumsbereichs ermitteln Wochentage eines Datumsbereichs ermitteln, optional mit Feiertagsberechnung TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |