Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

einbinden von datein

einbinden von datein
13.11.2006 09:08:45
datein
hallo,
also ich hab da mal ne frage:
ich würde gern bei ereigniseintritt eine ppt-folie oder ne mp3 aufrufen/abspielen.
so nach dem motto wenn a=8, dann zeig kurz die ppt-folie so und so...oder spiel die klingel.mp3 ab.
versteht irh was ich meine!?
nur finde ich leider irgendwie nicht's zum thema...
habt ihr anregungen, ideen!?
vielen dank für jeden tipp

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: einbinden von datein
13.11.2006 10:34:27
datein
danke für den tipp...funktioniert irgendwie leider nciht...
also habe es gemacht wie in https://www.herber.de/forum/archiv/712to716/t712634.htm beschrieben...
habe eine modul: mdlPlayMP3
' Modul MP3-Play and Stop via API
'Quelle: http://www.vbarchiv.net/archiv/tipp_499.html
Option Explicit
' zunächst die benötigte API-Deklaration
Private Declare Function mciSendString Lib "winmm.dll" _
Alias "mciSendStringA" (ByVal lpszCommand As String, _
ByVal lpszReturnString As String, _
ByVal cchReturnLength As Long, _
ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" _
Alias "GetShortPathNameA" (ByVal lpszLongPath As String, _
ByVal lpszShortPath As String, _
ByVal cchBuffer As Long) As Long
' MP3-Datei abspielen
Public Function MP3_Play(ByVal sFile As String, _
ByVal sAlias As String) As Boolean
Dim bResult As Boolean
' Dateinamen in DOS 8.3 Format, da z.B. Sonderzeichen
' wie Leerzeichen Probleme machen
Dim sBuffer As String
Dim lResult As Long
sBuffer = Space$(255)
lResult = GetShortPathName(sFile, sBuffer, Len(sBuffer))
If lResult 0 Then
sFile = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
' MCI öffnen
lResult = mciSendString("open " & sFile & _
" type MPEGVideo alias " & sAlias, 0, 0, 0)
If lResult = 0 Then
' MP3 abspielen
If mciSendString("play " & sAlias & _
" from 0", 0, 0, 0) = 0 Then
bResult = True
End If
End If
End If
MP3_Play = bResult
End Function
' Wiedergabe stoppen und MCI schließen
Public Sub MP3_Stop(ByVal sAlias As String)
mciSendString "stop " & sAlias, 0, 0, 0
mciSendString "close " & sAlias, 0, 0, 0
End Sub
und das ist userform 4:
Option Explicit
Const myMP3 As String = "C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Musik\Beispielmusik\Beethovens Symphonie Nr. 9 (Scherzo).mp3"
Dim blnDontPlayAgain As Boolean

Private Sub UserForm_Initialize()
If Not blnDontPlayAgain Then
' MP3 abspielen
MP3_Play myMP3, "MyAlias"
blnDontPlayAgain = True
Else
' MP3-Wiedergabe stoppen
MP3_Stop "MyAlias"
blnDontPlayAgain = False
End If
End Sub

nur leider funktioniert es nciht...beim debuggen ist das problem im modul und zwar das er bei der zeile:
lResult = GetShortPathName(sFile, sBuffer, Len(sBuffer))
denn lresult ist immer 0 und somit geht er nciht in die schleife...nur leider versteh ich das iresult nicht so ganz was es macht und wozu die variablen in der klammer was du aussagen und so :-(
danke für jede hilfe
Anzeige
AW: einbinden von datein
13.11.2006 10:50:35
datein
Hallo Julia,
Das Problem dürfte im Dateinamen liegen.
Um zu starten kopier doch mal Deine ****.mp3 datei z.B. auf C:\xxx.mp3 und versuch es mal damit. Es geht ja darum, ob es im Prinzip geht.
Gruss Hansueli
AW: einbinden von datein
13.11.2006 10:57:11
datein
es funktioniert immer noch nciht...hab sie jetzt auch mal in test.mp3 umgewandelt...falls leerzeichen(vorher waren leerzeichen im dateinamen) ein problem wären...aber da kommt nicht'd... :-(
AW: einbinden von datein
13.11.2006 12:09:11
datein
' Modul MP3-Play and Stop via API
'Quelle: http://www.vbarchiv.net/archiv/tipp_499.html
Option Explicit
' zunächst die benötigte API-Deklaration
Private Declare

Function mciSendString Lib "winmm.dll" _
Alias "mciSendStringA" (ByVal lpszCommand As String, _
ByVal lpszReturnString As String, _
ByVal cchReturnLength As Long, _
ByVal hwndCallback As Long) As Long
Private Declare 

Function GetShortPathName Lib "kernel32" _
Alias "GetShortPathNameA" (ByVal lpszLongPath As String, _
ByVal lpszShortPath As String, _
ByVal cchBuffer As Long) As Long
' MP3-Datei abspielen
Public 

Function MP3_Play(ByVal sFile As String, _
ByVal sAlias As String) As Boolean
Dim bResult As Boolean
' Dateinamen in DOS 8.3 Format, da z.B. Sonderzeichen
' wie Leerzeichen Probleme machen
Dim sBuffer As String
Dim lResult As Long
sBuffer = Space$(255)
lResult = 2
If lResult <> 0 Then
sFile = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
' MCI öffnen
lResult = mciSendString("open " & sFile & _
" type MPEGVideo alias " & sAlias, 0, 0, 0)
If lResult = 0 Then
' MP3 abspielen
If mciSendString("play " & sAlias & _
" from 0", 0, 0, 0) = 0 Then
bResult = True
End If
End If
End If
MP3_Play = bResult
End Function

' Wiedergabe stoppen und MCI schließen
Public

Sub MP3_Stop(ByVal sAlias As String)
mciSendString "stop " & sAlias, 0, 0, 0
mciSendString "close " & sAlias, 0, 0, 0
End Sub

zeile 14:
sFile = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
was is instr!? weißt du das!?
Anzeige
AW: einbinden von datein
13.11.2006 12:21:21
datein
also instr weiß ich jetzt was es ist...
wegen dem mp3 einbinden...beim debuggen erhällt result imm 0, aber warum weiß ich auch nciht...sbuffer!? wozu ist das da!? len hat bei mir den wert 255
machg ich irgendwas falsch!?
es funzt, habe aber trotzdem noch ein kleines Prob
13.11.2006 12:56:28
Julia
also vielen vielen dank...es funzt alles...
ABER: komisch ist das es 2 modul durchläufe nach dem sound gibt, da kommt dann nix und dann kommt wieder ein sound und dann wieder 2 runden lang nix....
muss ich irgendwas zurücksetzten!?
AW: es funzt, habe aber trotzdem noch ein kleines
13.11.2006 13:12:09
EtoPHG
Hallo Julia,
Guck im alten Thread.
Da war von Stoppen die Rede.
Konkret: Wenn Du blnDontPlayAgain nie auf True setzest, dann sollte der Code das Abspielen nicht stoppen, bzw. immer wieder spielen.
Gruss Hansueli
Anzeige
AW: einbinden von datein
13.11.2006 13:06:56
datein
Hallo Julia,
Bei diesem Code wird der "älteste" kompatible Multimedia-Driver winmm.dll angesprochen.
Dieser arbeitet noch mit DOS-Notation der Directory-Name.
GetShortPathName wandelt den 1. parameter (sFile) in den 2. parameter (sBuffer) um.
sBuffer kann (gem. DOS) max 255 Zeichen lang sein. Am Schluss ist der String mit einem vbNullString abgeschlossen, der mit der Zeile 14 wieder entfernt wird.
Instr(param1,param2) sucht die Position (Stelle) des Substring (param2) in String (Param1).
Warum das lResult bei Dir immer 0 ist, ist mir schleierhaft.
Wenn Du den Inhalt der Konstante myMP3 in die Adresse eine Windows-Explorers kopierst, müsste die Datei geöffnet werden und dann müsste auch dieser VBA-Code funktionieren. So ist's wenigstens bei mir.
Gruss Hansueli
Anzeige
irgendwie haut es immer noch nicht hin:-(
17.11.2006 11:54:58
Julia
hallo da bin ich wieder...
also bei mir ist es ja so das ich nach 2 unterschiedlichen ereignissen die api aufruf...wenn ich es nur mit einer mache ist alles ok und es klappt wunderbar, aber wenn ich 2 unterschiedliche sounds hören will geht es nciht...jewils einzeln klappt es schon, also es kann nciht an den lieder liegen...ich weiß einfach nciht mehr weiter...habe wie du gesat hast die variable 'blnDontPlayAgain = True auskommentiert...dann kommt gar kein sound mehr...
kommentiere ich blnDontPlayAgain = True in der breakdown(das is nen ereigniss, also wenn das passiert soll nen sound kommen) sache aus, und bei tagesbeginn(da soll dann auch immer nen sound kommen) nicht läuft breakdown-sound wunderbar nach plan...wenn ich das ganze umdreh, dann kommt am 2. tag ein ring...und danach is auch mucksmäuschen still :-(
ich weiß nciht mehr was ich amchen soll...
hier noch der code zum afruf der api und die api dann...:
breakdown ruft api auf:
Option Explicit
Const myMP3 As String = "C:\Dokumente und Einstellungen\reekj\gglas02.mp3"
Dim blnDontPlayAgain As Boolean

Private Sub UserForm_Activate()
If Not blnDontPlayAgain Then
' MP3 abspielen
MP3_Play myMP3, "MyAlias"
blnDontPlayAgain = True
Else
' MP3-Wiedergabe stoppen
MP3_Stop "MyAlias"
blnDontPlayAgain = False
End If
End Sub

tag(modul sound) ruft api auf:
Option Explicit
'Const myMP3 As String = "C:\Dokumente und Einstellungen\reekj\gglas02.mp3"
Dim blnDontPlayAgain As Boolean
Function sound(myMP3 As String)
If Not blnDontPlayAgain Then
' MP3 abspielen
MP3_Play myMP3, "MyAlias"
'blnDontPlayAgain = True
Else
' MP3-Wiedergabe stoppen
MP3_Stop "MyAlias"
blnDontPlayAgain = False
End If
End Function
API:
' Modul MP3-Play and Stop via API
'Quelle: http://www.vbarchiv.net/archiv/tipp_499.html
Option Explicit
' zunächst die benötigte API-Deklaration
Private Declare Function mciSendString Lib "winmm.dll" _
Alias "mciSendStringA" (ByVal lpszCommand As String, _
ByVal lpszReturnString As String, _
ByVal cchReturnLength As Long, _
ByVal hwndCallback As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" _
Alias "GetShortPathNameA" (ByVal lpszLongPath As String, _
ByVal lpszShortPath As String, _
ByVal cchBuffer As Long) As Long
' MP3-Datei abspielen
Public Function MP3_Play(ByVal sFile As String, _
ByVal sAlias As String) As Boolean
Dim bResult As Boolean
' Dateinamen in DOS 8.3 Format, da z.B. Sonderzeichen
' wie Leerzeichen Probleme machen
Dim sBuffer As String
Dim lResult As Long
sBuffer = Space$(255)
lResult = GetShortPathName(sFile, sBuffer, Len(sBuffer))
If lResult 0 Then
sFile = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
' MCI öffnen
lResult = mciSendString("open " & sFile & _
" type MPEGVideo alias " & sAlias, 0, 0, 0)
If lResult = 0 Then
' MP3 abspielen
If mciSendString("play " & sAlias & _
" from 0", 0, 0, 0) = 0 Then
bResult = True
End If
End If
End If
MP3_Play = bResult
End Function
' Wiedergabe stoppen und MCI schließen
Public Sub MP3_Stop(ByVal sAlias As String)
mciSendString "stop " & sAlias, 0, 0, 0
mciSendString "close " & sAlias, 0, 0, 0
End Sub
danke für jeden tipp
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige