Karthagos Posted June 25, 2017 Share Posted June 25, 2017 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 Quote Link to comment
gleddamax Posted June 25, 2017 Share Posted June 25, 2017 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. Quote Link to comment
Karthagos Posted June 25, 2017 Author Share Posted June 25, 2017 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 Quote Link to comment
Marc32 Posted June 25, 2017 Share Posted June 25, 2017 (edited) 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 June 25, 2017 by Marc32 1 Quote Link to comment
Karthagos Posted August 15, 2017 Author Share Posted August 15, 2017 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 Quote Link to comment
Griga Posted August 15, 2017 Share Posted August 15, 2017 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? 1 Quote Link to comment
Karthagos Posted August 15, 2017 Author Share Posted August 15, 2017 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 Quote Link to comment
Karthagos Posted August 31, 2017 Author Share Posted August 31, 2017 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 Quote Link to comment
Marc32 Posted September 1, 2017 Share Posted September 1, 2017 (edited) 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 pfadShellSet 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 pfadShellSet 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 September 1, 2017 by Marc32 1 Quote Link to comment
Marc32 Posted September 1, 2017 Share Posted September 1, 2017 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 pfadShellSet WshShell = NothingWScript.Sleep(2000)Set DVBViewer = GetObject(, "DVBViewerServer.DVBViewer")Const ForReadingmute = 1CMUV = DVBViewer.OSD.SettingDirSet objFSO = CreateObject("Scripting.FileSystemObject")Set objFile = objFSO.OpenTextFile(CMUV&"setup.xml", ForReadingmute)strTextSET = objFile.ReadAllobjFile.CloseDVBArrayre = 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" ThenDVBViewer.SendCommand(25)End if '____________________________________________________________________________ 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. 1 Quote Link to comment
nuts Posted September 2, 2017 Share Posted September 2, 2017 (edited) 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 September 2, 2017 by nuts 1 Quote Link to comment
Marc32 Posted September 2, 2017 Share Posted September 2, 2017 (edited) 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. On Error resume nextpfadShell = """C:\Program Files (x86)\DVBViewer\DVBViewer.exe"""Set WshShell = WScript.CreateObject ("WScript.Shell")WshShell.Run pfadShellSet WshShell = NothingSet DVBViewer = GetObject(, "DVBViewerServer.DVBViewer")Do until i <> ""Set DVBViewer = GetObject(, "DVBViewerServer.DVBViewer")i = DVBViewer.audiomodeWScript.Sleep(500)DVBViewer.mute (True)LoopWscript.Quit Edited September 2, 2017 by Marc32 1 Quote Link to comment
Karthagos Posted September 5, 2017 Author Share Posted September 5, 2017 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 Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.