Jump to content

DVBViewer ohne Tonstarten


Karthagos

Recommended Posts

Hallo,

ich nutze DVBViewer Pro V6.0.2.0 unter Windows 10 64 bit (Build 10240). Als Startparameter habe ich ohne Ton, also -x25 eingetragen.

Nachdem ich mit dem Startverhalten Probleme hatte, habe ich ausführlich getestet

 - DVBViewer starten - Ton ist aus - DVBViewer schliessen

 - DVBViewer starten - Ton ist an - DVBViewer schliessen

 - DVBViewer starten - Ton ist aus - DVBViewer schliessen

... usw

als wenn da bei jedem Start ein Schalter wirken würde und die Stummschaltung nur bei jedem zweiten Start greift

Hat jemand einen Tipp für mich, danke im Voraus und Gruß

Günther

 

 

Link to comment

der Kommandoparameter -x25 (oder andere Zahl aus action.ini) löst lediglich das selbe aus, was die entsprechende Taste (M) auslöst. Das heißt, dass es zwischen beiden Zuständen (lautlos <-> mit Ton) wechselt; daher das von dir beobachtete Verhalten. Dadurch kann man den DVBViewer auch im Betrieb damit steuern.

 

Wenn der Ton aus sein soll, bleibt meines Wissens nach nur, den Ton auf 0 herunter zu fahren, bevor man den DVBViewer schließt und den Parameter weg lässt, oder kurz den Ton anstellt vor dem Schließen und mit Parameter startet.

 

Man kann den DVBViewer auch ohne automatische Wiedergabe (Standby-Modus) starten, wenn man -c als Parameter anfügt, falls das ein Weg für dich wäre.

 

Link to comment

Hallo gleddamax,

danke für Deine Erklärung, erscheint mir bei bem von mir beobachteten Verhalten so zu sein, obwohl es für mich unlogisch erscheint, wenn ich als "Startparameter" Mute angebe, dann will ich Lautlos und keinen Wechsel.

Aber Dein Tipp mit dem Standby-Modus hilft mir weiter und ist für meine Zwecke geeignet, nochmals danke.

Gruß Günther

Link to comment

Hallo,

 

ich würde das per Abfrage regeln. Trage einfach das in deine command.vbs ein:

 

'-------------------------------------------------------------

Case 25555
Const ForReadingmute = 1
CMUV = OSD.SettingDir
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(CMUV&"setup.xml", ForReadingmute)
strTextSET = objFile.ReadAll
objFile.Close
DVBArrayre = Split(strTextSET,vbCrLf)
DVBArrayre = Filter(Split(strTextSET,vbCrLf),"<entry name=""Mute"">")
ergeMute = Trim(DVBArrayre(0))
ergeMute = Replace(Replace(Replace(ergeMute,"<entry name=""Mute"">",""),"</entry>",""),",","")
If ergeMute = "0" Then
SendCommand(25)
End if
'------------------------------------------------------------------

 

Du kannst dann einfach den DVBViewer mit -x25555 starten und es sollte alles passen.

 

Grüße,

Marc

 

Ps.: Das Script fragt beim Start ab, ob der DVBViewer stumm geschaltet ist. Falls nicht, wird er stumm geschaltet

Ist er bereits stumm geschaltet, passiert nichts und er bleibt weiter stumm.

Edited by Marc32
  • Thanks 1
Link to comment
  • 1 month later...

Hallo Marc,

zunächst Danke für Deine Antwort und "Asche über mein Haupt", habe Deinen Beitrag erst heute bemerkt.

Ich wollte zunächst testen, den DVBViewer überhaupt mit vbs zu starten, habe das sonst über eine batch-Datei gemacht. Mein Eintrag:

     set wshell = CreateObject("Wscript.shell")
     wshell.run "C:\Program Files (x86)\DVBViewer\DVBViewer.exe"

produziert die Fehlermeldung: >>Das System kann die angegebene Datei nicht finden<<

Wenn ich z.B. versuche über vbs notepad zu starten, funktioniert das. Habe gelesen, dass das wohl mit dem Systempfad zusammenhängt,

aber leider keine Lösung gefunden, wie man das mit "nichtsystempfad-Dateien" hinbekommt.

Vielleicht kannst Du mir einen Tip geben bzw. die komplette vbs-Anweisung mit Deinem Abfragecode einstellen, sodass ich das nur in dievbs-Datei kopieren muss.

Bin leider in vbs nicht sehr bewandert

Viele Grüße

Günther

Link to comment

Das Problem sind die Leerzeichen im Pfad. Probiere

wshell.run """C:\Program Files (x86)\DVBViewer\DVBViewer.exe"""

also jeweils drei Anführungszeichen am Anfang und Ende.

 

Der Pfad muss in Anführungsstriche gesetzt werden, um klarzumachen, dass trotz der Leerzeichen alles zusammengehört. Um weiterhin klarzumachen, dass die Anführungsstriche zu der übergebenen Zeichenkette gehören, müssen sie verdoppelt werden. Und dann kommen noch die Anführungstriche dazu, die normalerweise eine Zeichenkette einschließen. Alles sehr einfach und naheliegend, oder? :)

  • Thanks 1
Link to comment

Hallo Griga,

danke für die Ausführungen, das klappt, das ich nicht selbst drauf gekommen bin :(

Zu meiner Ehrenrettung, mit jeweils2 Anführungszeichen hatte ich es schon probiert :)

Aber wie ich befürchtet habe, klappt es mit dem Einfügen/Anhängen der if-Anweisung von Marc nicht, da meldet er Sytaxfehler in Zeile 3

Vielleicht erbarmt sich nochmal jemand meines Problems.

Gruß Günther

Link to comment
  • 3 weeks later...

Hallo Marc,

habe jetzt einige Zeit mit dem Problem gekämpft, leider ohne positives Ergebnis.

 

Mein Script sieht also jetzt so aus:

set wshell = CreateObject("Wscript.shell")
wshell.run """C:\Program Files (x86)\DVBViewer\DVBViewer.exe -x25555 """
Case 25555
Const ForReadingmute = 1
CMUV = OSD.SettingDir
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(CMUV&"setup.xml", ForReadingmute)
strTextSET = objFile.ReadAll
objFile.Close
DVBArrayre = Split(strTextSET,vbCrLf)
DVBArrayre = Filter(Split(strTextSET,vbCrLf),"<entry name=""Mute"">")
ergeMute = Trim(DVBArrayre(0))
ergeMute = Replace(Replace(Replace(ergeMute,"<entry name=""Mute"">",""),"</entry>",""),",","")
If ergeMute = "0" Then
SendCommand(25)
End if

und bringt die Fehlermeldung:

Skript:     C:\Batch\DVB Viewe Start mute.vbs
Zeile:     3
Zeichen: 1
Fehler:     Anweisung erwartet
Code:     800A0400
Quelle:  Kompilierungsfehler in Microsoft VBScript

Kannst du das nachvollziehen bzw. hast Du einen Lösungsvorschlag?

Gruß Günther

Link to comment

Hallo,

 

so startest du mit einem externen script den DVBViewer:

'_________________________________________________________________

pfadShell = """C:\Program Files (x86)\DVBViewer\DVBViewer.exe"""
Set WshShell = WScript.CreateObject ("WScript.Shell")
WshShell.Run pfadShell
Set WshShell = Nothing

'____________________________________________________________________

 

und so startest du mit einem externen script den DVBViewer mit dem parameter, der das mute-script aufruft.

 

'_________________________________________________________________

pfadShell = """C:\Program Files (x86)\DVBViewer\DVBViewer.exe"" -x25555"
Set WshShell = WScript.CreateObject ("WScript.Shell")
WshShell.Run pfadShell
Set WshShell = Nothing

'_________________________________________________________________________
 

 

du musst natürlich vorher folgendes script in deiner command.vbs eintragen. du findest die command.vbs unter

DVBViewer/scripts/. 

 

'------------------------------------------------------------

Case 25555
Const ForReadingmute = 1
CMUV = OSD.SettingDir
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(CMUV&"setup.xml", ForReadingmute)
strTextSET = objFile.ReadAll
objFile.Close
DVBArrayre = Split(strTextSET,vbCrLf)
DVBArrayre = Filter(Split(strTextSET,vbCrLf),"<entry name=""Mute"">")
ergeMute = Trim(DVBArrayre(0))
ergeMute = Replace(Replace(Replace(ergeMute,"<entry name=""Mute"">",""),"</entry>",""),",","")
If ergeMute = "0" Then
SendCommand(25)
End if
'------------------------------------------------------------------

 

oder willst du das script nicht in der command.vbs haben und den DVBViewer komplett über eine andere .vbs datei

starten? denn dann müsste ich am mute-script etwas umschreiben, da dieses in der jetzigen form nur in der command.vbs funktioniert.

 

grüße,

marc

 

 

Edited by Marc32
  • Thanks 1
Link to comment

so, ich nochmal.)

 

also wenn du den DVBViewer und das script zusammen mit einer .vbs datei starten möchtest,

dann so:

 

'_________________________________________________________________________

pfadShell = """C:\Program Files (x86)\DVBViewer\DVBViewer.exe"""
Set WshShell = WScript.CreateObject ("WScript.Shell")
WshShell.Run pfadShell
Set WshShell = Nothing
WScript.Sleep(2000)
Set DVBViewer = GetObject(, "DVBViewerServer.DVBViewer")
Const ForReadingmute = 1
CMUV = DVBViewer.OSD.SettingDir

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(CMUV&"setup.xml", ForReadingmute)
strTextSET = objFile.ReadAll
objFile.Close
DVBArrayre = Split(strTextSET,vbCrLf)
DVBArrayre = Filter(Split(strTextSET,vbCrLf),"<entry name=""Mute"">")
ergeMute = Trim(DVBArrayre(0))
ergeMute = Replace(Replace(Replace(ergeMute,"<entry name=""Mute"">",""),"</entry>",""),",","")
If ergeMute = "0"Then
DVBViewer.SendCommand(25)
Endif

'____________________________________________________________________________

 

beachte bitte das Wscript.Sleep. das musst du ggf. anpassen, 2000 steht für 2 sekunden.

wenn du einen activeX fehler erhälst, startet der DVBViewer bei dir nicht schnell genug. in

diesem fall erhöhe einfach auf 3000, also 3 sekunden.

 

grüße marc.

 

ps. eigentlich wäre es doch aber geschickter, das mute-script aus dem vorherigen post

in die command.vbs zu schreiben und den DVBViewer oder dessen verknüpfung

mit dem parameter  -x25555 zu starten. 

  • Thanks 1
Link to comment

Ich würde es mal so probieren (untestet und aus dem Kopf):

 

1. ) Diesen Teil als command.vbs (Infos zur command.vbs: http://de.DVBViewer.tv/wiki/Command.vbs ) abspeichern:

sub main(ActionID)
   Select Case ActionID 

       Case 25555
       'Bei ActionID 25555
           DVBViewer.Mute True
   End Select
End Sub

2. ) DVBViewer mit dem Kommandoparatemer  "-x25555" starten. 

Edited by nuts
  • Thanks 1
Link to comment
1 hour ago, nuts said:

Ich würde es mal so probieren (untestet und aus dem Kopf):

 

1. ) Diesen Teil als command.vbs (Infos zur command.vbs: http://de.DVBViewer.tv/wiki/Command.vbs ) abspeichern:


sub main(ActionID)
   Select Case ActionID 

       Case 25555
       'Bei ActionID 25555
           DVBViewer.Mute True
   End Select
End Sub

2. ) DVBViewer mit dem Kommandoparatemer  "-x25555" starten. 

 

 

ich sollte mal wieder die sdk lesen^^. jo, so ist es natürlich viel unkomplizierter.

 

 

@Karthagos

falls du es trotzdem aus irgendwelchen gründen nicht über parameter und command.vbs starten möchtest,

kannst du das in eine beliebige vbs schreiben und diese dann starten. 

 

OnErrorresumenext
pfadShell = """C:\Program Files (x86)\DVBViewer\DVBViewer.exe"""
Set WshShell = WScript.CreateObject ("WScript.Shell")
WshShell.Run pfadShell
Set WshShell = Nothing
Set DVBViewer = GetObject(, "DVBViewerServer.DVBViewer")
Dountil i <> ""
Set DVBViewer = GetObject(, "DVBViewerServer.DVBViewer")
i = DVBViewer.audiomode
WScript.Sleep(500)
DVBViewer.mute (True)
Loop
Wscript.Quit

 

 

Edited by Marc32
  • Thanks 1
Link to comment

Hallo Marc32 und Nuts,

 

zunächst einmal 1000 Dank für Eure Antworten und Beiträge, damit hat es schlussendlich perfekt geklappt.

Habe die command.vbs mit der Mute-Abfrage unter Scripts angelegt und starte nun über eine zweite vbs im Autostart gemäß dem letzten Eintrag von Marc 32,

den ich in der Zeile  pfadShell noch um die Anweisungen minimiert und mit bestimmten Sender starten ergänzt habe.

 

Viele Grüße

Günther

 

 

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...