Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Fehlermeldung bei Aufruf von WMP1:TWindowsMediaPlayer; (https://www.delphipraxis.net/82411-fehlermeldung-bei-aufruf-von-wmp1-twindowsmediaplayer%3B.html)

Franziska_01 12. Dez 2006 18:25


Fehlermeldung bei Aufruf von WMP1:TWindowsMediaPlayer;
 
Hallo!
Ich stehe vor einem Problem, welches ich nach mehreren Tagen intensiven Suchens nicht lösen konnte.
Mein, mit Delphi 5 geschriebenes Prog, mit integriertem ActiveX Windowsmediaplayer (welcher z.B. die Datei WMP.DLL braucht) läuft unter XP ohne Prob, aber unter 98, NT od. 2000 kommt es in dem Moment zum Absturz, wenn in der Type - Deklaration: WMP1: TWindowsMediaPlayer; abgearbeitet wird. Wie kann ich vorher abfragen, ob die wmp.dll existiert (oder diese nichtssagenden Fehlermeldungen umgehen))? Wie gesagt, wird create noch nicht ausgeführt.

Vielleicht hat ja jemand ne Idee.
Vielen Dank!
Frankziska

shmia 12. Dez 2006 18:37

Re: Fehlermeldung bei Aufruf von WMP1:TWindowsMediaPlayer;
 
Ganz offensichtlich sind in der DLL eine oder mehrere CoKlassen enthalten,
die nicht auf jedem Rechner installiert sind.
Mit folgender Funktion kann man prüfen, ob so eine CoClass vorhanden ist:
Delphi-Quellcode:
function ProgIDExists(const ProgID:WideString):Boolean;
var
   tmp : TGUID;
begin
   Result := Succeeded(CLSIDFromProgID(PWideChar(ProgID), tmp));
end;
Anwendungsbeispiel:
Delphi-Quellcode:
   if ProgIDExists('Word.Application') then
      ShowMessage('WinWord ist installiert');
   // die ProgID, die hier folgt habe ich erfunden
   // du musst die richtige ProgID einsetzen
   if not ProgIDExists('Mediaplayer.Application') then
   begin
      ShowMessage('Mediaplayer 10 ist NICHT installiert');
      application.terminate;
      Exit;
   end;
[edit=SirThornberry]Delphitags korrigiert - Mfg, SirThornberry[/edit]

Franziska_01 12. Dez 2006 18:47

Re: Fehlermeldung bei Aufruf von WMP1:TWindowsMediaPlayer;
 
Dankeschön !!! vielmals, für eine so schnelle Antwort, werde es nachher testen, schreibe dann das Ergebnis.


Franziska

DP-Maintenance 12. Dez 2006 19:44

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Multimedia" verschoben.
Ab nach Multimedia

Franziska_01 13. Dez 2006 01:25

Re: Fehlermeldung bei Aufruf von WMP1:TWindowsMediaPlayer;
 
nun, das Problem für mich ist, das das Prog. schon abstürzt, bevor ich das vorhandensein einer dll abfragen kann. Der unsaubere Ausstieg wird von einer Zeile in der Type - Deklaration provoziert, bevor Form1.create erreicht wird.

Oder kann ich eine Instanz des Windowsmediamplayer auch später ableiten?

Grüße Frankziska

mkinzler 13. Dez 2006 05:51

Re: Fehlermeldung bei Aufruf von WMP1:TWindowsMediaPlayer;
 
Wenn wir den Code kennen würden, könnten wir besser helfen.

Franziska_01 14. Dez 2006 02:27

Re: Fehlermeldung bei Aufruf von WMP1:TWindowsMediaPlayer;
 
hm, vielleicht habe ich mich unklar ausgedrückt, ich versuche es nochmal:
-ich habe Delphi 5 Prof
-ich habe den Windowsmediaplayer in der Palette unter Activex hinzugefügt
-ich erstelle ein neues Projekt und eine leere Form
-ich ziehe den windowsmediaplayer von der Activex-Palette auf meine Form.

wenn ich jetzt dieses kleine (unsinnige) Prog unter xp starte ist alles ok, wenn ich es aber unter NT 98 od. 2000 starte, kommt es zu einer Fehlermeldung (es fehlt vermutlich die wmp.dll). Diese Fehlermeldung möchte ich gerne vermeiden, indem ich

type
windowsmediaplayer1 : TWindowsMediaPlayer;

erst lade, nach dem ich nachgefragt habe, ob die DLL vorhanden ist.

Wie kann ich dies am Besten machen?

Franziska

mkinzler 14. Dez 2006 05:44

Re: Fehlermeldung bei Aufruf von WMP1:TWindowsMediaPlayer;
 
Du kannst ja die Komponente zur Laufzeit erstellen. Dazu mußt du sie von der Form nehmen. Die Objektvaribale manuell in die Klassendefinition enfügen und dann im .FormCreate
Delphi-Quellcode:
    windowsmediaplayer1 := TWindowsMediaPlayer.Creat(self);
    windowsmediaplayer1.Parent := Self;
    windowsmediaplayer1.Left := ...
...
einfügen. Die Punkte stehen für das Setzen der weiteren Eigenschaften der Komponente.

Franziska_01 14. Dez 2006 06:16

Re: Fehlermeldung bei Aufruf von WMP1:TWindowsMediaPlayer;
 
:thumb: :thumb: :thumb: :thumb: :thumb: :thumb:
Vielen Dank! das ist eine gute Lösung, dies setz ich dann in eine Fehlerbehandlungsroutine, und so kann ich schauen, ob diese Komponente initialisiert wird.

Vielen Dank für die schnelle und professionelle Hilfe

Franziska

shmia 14. Dez 2006 11:07

Re: Fehlermeldung bei Aufruf von WMP1:TWindowsMediaPlayer;
 
Es geht wahrscheinlich noch einfacher:
Das Property "AutoConnect" sollte auf False gesetzt werden.
Dann kann man die Verbindung selbst mit der Methode Connect() herstellen und Fehler abfangen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz