Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1148to1152
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
Inhaltsverzeichnis

Laufzeitfehler Windows Media Player

Laufzeitfehler Windows Media Player
ThomasGestrich
Hallo zusammen,
ich habe auf dieser Site einen Code von Nepumuk v. 18.01.2005 gefundern, der es erlaubt über den Windows Media Player Musik zu spielen - und das Programm im Hintergrund beläßt.
Zur Lauffähigkeit muß ein Verweis gesetzt werden.
Bei Codeausführung kommt der Laufzeitfehler 80004005 (Automatisierungsfehler; unbekannter Fehler).
Ich wäre für Hilfe dankbar, diesen Fehler zu beheben.
Hier noch der Code, den ich vollständig in ein Standardmodul kopiert habe.
Beste Grüße
Thomas Gestrich
CODE:
Option Explicit
Private Const SW_MINIMIZE = 6
Private Type POINTAPI
x As Long
y As Long
End Type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type WINDOWPLACEMENT
Length As Long
flags As Long
showCmd As Long
ptMinPosition As POINTAPI
ptMaxPosition As POINTAPI
rcNormalPosition As RECT
End Type
Private Declare Function ClientToScreen Lib "user32" _
(ByVal hwnd As Long, _
lpPoint As POINTAPI) As Long
Private Declare Function GetWindowPlacement Lib "user32" _
(ByVal hwnd As Long, _
lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetWindowPlacement Lib "user32" _
(ByVal hwnd As Long, _
lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Sub Sleep Lib "kernel32" _
(ByVal dwMilliseconds As Long)
Public Sub play()
Dim Player As WindowsMediaPlayer
Set Player = New WindowsMediaPlayer  'HIER ENTSTEHT FEHLER
Player.openPlayer ("D:\ ... \blabla.mp3")
Set Player = Nothing
Sleep 100 'Wartezeit in Millisekunden eventuell erhöhen!!
unvisible
End Sub

Private Sub unvisible()
Dim WinEst As WINDOWPLACEMENT
Dim Punto As POINTAPI
Dim rtn As Long
WinEst.Length = Len(WinEst)
rtn = GetWindowPlacement(FindWindow(vbNullString, "Windows Media Player"), WinEst)
If rtn 0 Then
Punto.x = 100
Punto.y = 100
WinEst.showCmd = SW_MINIMIZE
WinEst.ptMinPosition = Punto
WinEst.ptMaxPosition = Punto
SetWindowPlacement FindWindow(vbNullString, "Windows Media Player"), WinEst
End If
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Laufzeitfehler Windows Media Player
12.04.2010 16:00:54
Ramses
Hallo
Hast du den Verweis gesetzt ?
Welche Zeile wird markiert wenn du im Fehlermeldefenster auf "Debuggen" klickst ?
Gruss Rainer
AW: Laufzeitfehler Windows Media Player
12.04.2010 16:40:06
ThomasGestrich
Hallo Rainer,
danke für schnelles fedback.
Verweis habe ich (bin artig) gesetzt.
Er setzt sich sogar automatisch, wenn man die Datei öffnet, wie ich gesehen habe.
Markiert wird die Zeile
Set Player = New WindowsMediaPlayer
Anm.: Im Verweiskatalog gibt es zweimal den Begriff "Windows Media Player";
einer betrifft den Player als Anwendung (wmp.dll), einer auf den Player als Steuerelement (msdxm.ocx ).
Notwendig ist m. E. der Verweis auf wmp.dll; egal ob nur dieser oder auch der namensgleiche Verweis auf msdxm.ocx gesetzt wird, tritt das Problem auf.
Beste Grüße
Thomas
Anzeige
Ursache: Betriebssystem
12.04.2010 17:56:47
Rudi
Hallo,
unter Win XP läuft das auf jeden Fall mit XL10-12.
Der Fehler tritt bei mir unter Win7 auf.
Helfen kann ich dir aber nicht.
Gruß
Rudi
AW: Laufzeitfehler Windows Media Player
12.04.2010 22:55:47
Anton
Hallo Thomas,
probier sowas:
Code:

Private Const SW_MINIMIZE = 6  
Private Type POINTAPI
    x As Long  
    y As Long  
End Type
Private Type RECT
    Left As Long  
    Top As Long  
    Right As Long  
    Bottom As Long  
End Type
Private Type WINDOWPLACEMENT
    Length As Long  
    flags As Long  
    showCmd As Long  
    ptMinPosition As POINTAPI
    ptMaxPosition As POINTAPI
    rcNormalPosition As RECT
End Type
Private Declare Function ClientToScreen Lib "user32" _    
                         (ByVal hwnd As Long, _  
                         lpPoint As POINTAPI) As Long  
Private Declare Function GetWindowPlacement Lib "user32" _    
                         (ByVal hwnd As Long, _  
                         lpwndpl As WINDOWPLACEMENT) As Long  
Private Declare Function SetWindowPlacement Lib "user32" _    
                         (ByVal hwnd As Long, _  
                         lpwndpl As WINDOWPLACEMENT) As Long  
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _  
                         (ByVal lpClassName As String, _  
                         ByVal lpWindowName As String) As Long    
Private Declare Sub Sleep Lib "kernel32" _  
                         (ByVal dwMilliseconds As Long)  
Sub player_starten()
  Dim fso As Object, f As Object, WshShell As Object  
  Dim strText As String, strVBS As String, strMP3 As String  
  strVBS = "c:\temp.vbs"
  strMP3 = "D:\ ... \blabla.mp3" 'anpassen
  Set fso = CreateObject("Scripting.FileSystemObject")  
  strText = "Set MediaPlayer = CreateObject(" & Chr(34) & "WMPlayer.OCX.7" & Chr(34) & ")" & vbCrLf  
  strText = strText & "MediaPlayer.openPlayer (" & Chr(34) & strMP3 & Chr(34) & ")"
  Set f = fso.OpenTextFile(strVBS, 2, True)  
  f.Write strText
  f.Close
  Set WshShell = CreateObject("WScript.Shell")  
  WshShell.Run "wscript " & strVBS, 1, True
  Set WshShell = Nothing  
  Sleep 200
  Kill strVBS
  unvisible
End Sub  
Private Sub unvisible()  
    Dim WinEst As WINDOWPLACEMENT  
    Dim rtn As Long  
    rtn = GetWindowPlacement(FindWindow(vbNullString, "Windows Media Player"), WinEst)  
    If rtn <> 0 Then  
        WinEst.showCmd = SW_MINIMIZE
        SetWindowPlacement FindWindow(vbNullString, "Windows Media Player"), WinEst  
    End If  
End Sub  


mfg Anton
Anzeige
AW: Laufzeitfehler Windows Media Player
12.04.2010 23:04:49
ThomasGestrich
Salve Anton,
danke für den Code. Werde ihn erst morgen checken können.
Darin wird "WMPlayer.OCX.7" aufgerufen. Ist das nicht die Verweisdatei für das Steuerelement
"Windows media Player" oder interpretiere ich die Dateiendung "ocx" falsch?
In jedem Fall erstmal vielen Dank.
Beste Grüße
Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige