DVD mit beliebigem Player von eigenem Programm starten

Longshot

Admiral Special
Mitglied seit
11.11.2001
Beiträge
1.372
Renomée
5
Standort
München
Hallo,
ich programmiere mit Delphi 7, sollte aber bei dem Problem keine Rolle spielen. Mit dem ShellExecute Befehl (API) kann man ja Dateien / Programme oder Dateien mit bestimmten Programmen ausführen. Aber wie starte ich eine DVD? Einen Divx Film ist ja kein Problem, aber bei der DVD gibts ja keine Datei auf die ich doppelklicken kann um die DVD abzuspielen. Selbst wenn ich den ganzen Ordner einfach über bsp PowerDVD schiebe spielt der nichts ab. Wenn ich sämtliche Datein, also alle vob's, ifo's und dub's als Parameter übergebe spielt er zwar die Vobs ab, aber ignoriert die ifo's und somit ist die DVD nicht mehr interaktiv, Menü funktioniert somit nicht mehr.

Kennt da jemand einen Weg das zu machen?
 
Ich weiß nur, dass VideoLAN Paramter wie "dvd://D:" unterstüzt. Aber mit PowerDVD oder WinDVD wirst du keinen Erfolg haben. :(
\²³/​
PS: Bei deiner Freeware könntest du unter Delphi die Unit "XPman" einbinden. Dann würden alle Programme ihre Buttons usw. dem XP-Style anpassen.
 
guter Tip was XPman angeht, da ich selbst nur den klassischen Style benutze ist mir das nie aufgefallen dass dann auch die Höhe nicht mehr stimmt und einige Buttens kaum mehr zu sehn sind.

Hab durch deinen Post auch gemerkt dass durch meinen letzten Webspace Wechsel die ganzen Dateiattribute wieder zurückgesetzt wurden und die counter nicht mehr gezählt haben.

VideoLAN muss ich mal ausprobieren...wär aber schade PowerDVD nicht mehr zu benutzen.
 
hi,

falls delphi7 das zusatz-programm winsight oder winsight32 enthaelt, dann koenntest versuchen, das button-handle fuer die source auswahl im PowerDVD zu ermitteln.

wenn nicht, dann muesstest mit FindWindow() alle darauf platzierten windows (buttons, edits, usw sind ja auch windows) ermitteln und probieren welcher was macht.

per winapi-funktion SendMessage() kannst du den button dann programmgesteuert druecken.
dann erscheint ja so ein pop-up mit laufwerks-auswahl oder auswahl eines dvd-ordners auf der platte.
von dem popup und dessen eintraegen, muesstest dann auch noch die handle ermitteln.
willst du einen ordner von der platte abspielen, brauchst du noch ein weiteres handle, fuer die ordner-auswahl.

ich weiss nicht, ob sich der aufwand fuer dich lohnt.
mit dem VideoLAN-player oder dem Media Player Classic, die sich mit parameter starten lassen, kommst du schneller ans ziel.

gruss tes
 
Gut, aber der Tip ist -wie meiner- immer von einem programm abhäbig. Eigentlich suchen wir ja eine Lösung, die universell mit -fast- jedem Player geht. (Egal ob Sasami, VLC, WinDVD...)
 
ja, stimmt.
aber er war ja im letzten post so enttaeuscht, das er seinen power-dvd nicht verwenden konnte.

gruss tes
 
tes schrieb:
aus diesem Posting
aber er war ja im letzten post so enttaeuscht, das er seinen power-dvd nicht verwenden konnte.
lol...jo, war ich. Aber der Aufwand mit SendMesssage etc ist mir zu groß...wollte ich zwar sowieso schon lang mal lernen, aber die Zeit steck ich lieber in den Rest des Programms das noch viel Zeit in Anspruch nehmen wird.

Dass das mit dem WMP Classic geht, also einfach sämtliche Dateien als Parameter übergeben, ist schonmal sehr gut. Der Player ist sowieso gar nicht so schlecht...auch wenn sämtliche andere Player bei einer nicht-sauberen Filmdatei abstürtzen/das Abspielen verweigern, verrichtet der ohne Mucken seine Arbeit.

Also wirklich nicht schlecht der Player, eigentlich nicht gerechtfertigt dass er in den letzten Jahren nur Notfall-Player war.

Von daher Problem und Frage ausreichend beantwortet, danke.
 
Benutzt doch einfach die ShellExecute-Funktion von Windows. Mit Operation "open" (oder so), und mit dem Pfad des DVD-Laufwerks als "file" - damit wird dann die Standardmethode aufgerufen die für das Laufwerk/das Medium hinterlegt ist.

Gruß,
BoMbY

Edit: Bei Delphi wird die ShellExecute-Funktion übrigens durch die Standard-Unit "ShellApi" zur Verfügung gestellt.
 
erster Post von mir:
skfink schrieb:
aus diesem Posting
Mit dem ShellExecute Befehl (API) kann man ja Dateien / Programme oder Dateien mit bestimmten Programmen ausführen.

und die DVD's die ich aus meinem Programm aus aus abspielen will sind auf der Festplatte. Wenn ich dann einfach bloss den Ordner ausführe indem die DVD drin ist öffnet sich der Explorer, nicht der Standard DVD Player ;)

Aber passt schon, ich werd die DVD einfach mit WMP Classic aufrufen wie tes empfohlen hat.
 
Dann versuch doch einfach mal als Methode "play", oder "start", oder vergleichbares, statt "open"?
 
BoMbY schrieb:
aus diesem Posting
Dann versuch doch einfach mal als Methode "play", oder "start", oder vergleichbares, statt "open"?
???
Windows weiss doch gar nicht dass in dem Ordner eine DVD drin ist. Wenn ich natürlich eine DVD ins Laufwerk einlege ist das was anderes, dann müsste das auch mit execute oder open funktionieren. Sieht man ja auch am Kontextmenu. Da steht beim Laufwerk dann sowas wie "play" an erster oder zweiter stelle...bei einem Ordner auf der Festplatte aber nicht, egal was in dem Ordner drin ist.
 
skfink schrieb:
aus diesem Posting

Aber passt schon, ich werd die DVD einfach mit WMP Classic aufrufen wie tes empfohlen hat.
<klugscheiß>Der Player heißt Media Player Classic. Ohne das "Windows"! Die "offizielle" Abkürzung ist MPC.</klugscheiß>
 
Zurück
Oben Unten