Jump to content

Unterscheidung Play DVD/Audio CD in Command.vbs


dbraner

Recommended Posts

Hallo,

 

ich würde gerne eine Taste im OSD doppelt belegen. Diese Taste soll die Action Play DVD ausführen wenn eine DVD eingelegt ist und die Action Play Audio CD wenn eine Audio CD eingelegt ist.

 

Gibt es eine Möglichkeit über das COM-Interface festzustellen, ob eine Audio-CD oder eine DVD im Laufwerk liegt?

 

Es geht hier nicht um Autoplay sondern um den Fall, dass die Wiedergabe der DVD/CD gestoppt wurde und der TV Modus aktiv ist, wobei die DVD/CD aber noch im Laufwerk liegt.

Link to comment
Hallo,

 

ich würde gerne eine Taste im OSD doppelt belegen. Diese Taste soll die Action Play DVD ausführen wenn eine DVD eingelegt ist und die Action Play Audio CD wenn eine Audio CD eingelegt ist.

 

Gibt es eine Möglichkeit über das COM-Interface festzustellen, ob eine Audio-CD oder eine DVD im Laufwerk liegt?

 

Es geht hier nicht um Autoplay sondern um den Fall, dass die Wiedergabe der DVD/CD gestoppt wurde und der TV Modus aktiv ist, wobei die DVD/CD aber noch im Laufwerk liegt.

 

Fixed it: Eine Unterscheidung ist nicht notwendig. Man definiert einfach wie im Wiki zu Command.vbs einen neuen Code und weist diesem eine Taste zu. Im entsprechenden Zweig in der Command.vbs schickt man dann einfach die Codes PlayDVD und PlayAudioCD hintereinander. Damit funktioniert dann das Starten einer eingelegten DVD und AudioCD.

 

Sub main (ActionID)

Select Case ActionID

 

Case 30511 ' Play DVD CD

SendCommand (8250) ' Play DVD

SendCommand (8257) ' Play AudioCD

 

Case Else

osd.showInfoinTVpic "No action in the Command.vbs for the ActionID " & ActionID,1000

 

End Select

End Sub

Link to comment

Hallo,

ich habe es so gelöst:

 

#######

Sub main (ActionID)

Select Case ActionID

Case 30700

Dim fsoObject, fsoDrive, fsoFilesystem, PlaySendCmd

Set fsoObject = CreateObject("Scripting.FileSystemObject")

Set fsoDrive = fsoObject.GetDrive("E:") 'der Laufwerksbuchstabe muss angepasst werden.

 

If fsoDrive.IsReady = True Then

fsoFilesystem = fsoDrive.FileSystem

Select Case fsoFilesystem

Case "UDF"

'Play DVD=8250

PlaySendCmd = 8250

Case "CDFS"

'Play AudioCD=8257

PlaySendCmd = 8257

End Select

Else

fsoFilesystem = "NO_Disk"

'Play=92

PlaySendCmd = 92

End If

'msgbox("Filesystem: " & fsoFilesystem & "; PlaySendCmd: " & PlaySendCmd) 'debug

'osd.showInfoinTVpic fsoFilesystem,2000 'debug

SendCommand(PlaySendCmd)

 

 

Case Else

osd.showInfoinTVpic "No action in the Command.vbs for the ActionID " & ActionID,1000

 

End Select

End Sub

#######

 

So ist die Play Taste dreifach belegt. DVBViewer sprigt zu den Aufnahmen, wenn keine CD/DVD im Laufwerk liegt.

Gruß

A4ke

Link to comment

Coole Lösung! Vor allem spart man sich wieder eine Taste auf der FB.

 

Weißt Du welches Dateisystem erkannt wird, wenn eine Blue-Ray Disk im Laufwerk liegt? Ist das auch UDF wie bei DVDs oder kann das von Disk zu Disk unterschiedlich sein?

Link to comment

Ich habe Herrn google gefragt. Blu Ray hat UDF 2.5. Welchen Wert fsoDrive.FileSystem zurück gibt weiß ich nicht.

Sobald ich einen Rechner mit Blu Ray Laufwerk sehe, werde ich es wissen und hier schreiben.

 

Gruß

Andreas

Link to comment
  • 1 month later...

Hallo,

ich habe jetzt noch ein Popup Menü eingebaut, damit man auch zu den Aufnahmen gelangt, wenn eine DVD/CD im Laufwerk liegt.

Die Funktion habe ich in ein eigenes VB Script untergebracht.

DVBViewer\Scripts\Play.vbs

'Play DVD/CD/Recordings - Script
Option Explicit

Dim DVBViewer
Dim fsoObject, fsoDrive, fsoFilesystem
Dim PlaySendCmd, PlayPopUpValue, PlayPopUpText

Set fsoObject = CreateObject("Scripting.FileSystemObject")
Set fsoDrive = fsoObject.GetDrive("E:") 'der Laufwerksbuchstabe muss angepasst werden.


If GetDVBVObject(DVBViewer) Then
If fsoDrive.IsReady = True Then
	fsoFilesystem = fsoDrive.FileSystem
	Select Case fsoFilesystem
	Case "UDF"
		'Play DVD=8250
		PlaySendCmd = 8250
		PlayPopUpText = "DVD starten,Aufnahmen,Zurück"
	Case "CDFS"
		'Play AudioCD=8257
		PlaySendCmd = 8257
		PlayPopUpText = "CD starten,Aufnahmen,Zurück"
	End Select
Else
	fsoFilesystem = "NO_Disk"
	'OSD-Show Recordings=8196
	PlaySendCmd = 8196
End If

If fsoFilesystem <> "NO_Disk" then
	PlayPopUpValue = DVBViewer.osd.ShowPopUp ("Auswahl:",PlayPopUpText,true)
	Select Case PlayPopUpValue
	Case 1
		'OSD-Show Recordings=8196
		PlaySendCmd = 8196
	Case -1,2
		WScript.Quit(0)
	End Select
end if
'DVBViewer.osd.showInfoinTVpic PlayPopUpValue & " " & PlaySendCmd,2000
DVBViewer.SendCommand(PlaySendCmd)
end if

'####################################################################
Function GetDVBVObject(Obj)
   On Error Resume Next
   Err.Clear: Set Obj = GetObject(, "DVBViewerServer.DVBViewer")
   If Err.Number = 424 OR Err.Number = 429 Then
	GetDVBVObject = False
   Else
	GetDVBVObject = True
End If
end Function

Liegt eine CD/DVD im Laufwerk, wird ein Popup Menü geöffnet. Hier kann man zwischen DVD/CD Starten; Aufnahmen und Zurück wählen.

 

In der Command.vbs rufe ich mit drücken der Play Taste auf der Fernbedienung Play.vbs auf.

'Play (geändert)
Case 30700
Dim objShell
Dim Status

Set objShell = CreateObject("Wscript.Shell")
Status = objShell.run("""C:\Program Files\DVBViewer\Scripts\Play.vbs""",0,false)

Status wird nicht ausgewertet, ist aber für den Aufruf objShell.run nötig. ",false" am Ende der Zeile bedeutet, dass Command.vbs nicht auf das Ende von Play.vbs wartet. Dieses ist wichtig, wenn man, so wie ich, die Cursortasten in der Command.vbs neu definiert hat. Dieses ist auch der Grund für ein eigenes Play.vbs. Hat man den gesammten Code in Command.vbs, wartet Command.vbs auf das Ergebnis vom Popup Menü und alle neu definierten Befehle funktionieren nicht.

 

Gruß

a4ke

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...