Manü Posted August 27, 2009 Posted August 27, 2009 Hallo, Ich wollte auf Pfeil-Hinunter die Senderliste anzeigen und dass dann ein Eintrag nach unten geht in der Senderliste. Ich hab also unter Optionen -> Eingaben einen eintrag "Down" erstellt und dann einfach die nummer 20502 hinzugefügt. In der commands.vbs hab ich dann einfach die nummer 20502 als ein Eintrag in der Mehrfachverzweigung genommen. Das sieht dann so aus: sub main(ActionID) Select Case ActionID 'UP Case 20501 If osd.isVisible Then SendCommand(78) 'OSD-Up Else SendCommand(7) 'SENDERLISTE SendCommand(78) 'OSD-Up End If 'DOWN Case 20502 If osd.isVisible Then SendCommand(79) 'OSD-Down Else SendCommand(7) 'SENDERLISTE SendCommand(79) 'OSD-Down End If End Select end sub Nur leider passiert wenn ich Runter drück garnichts. Kann mir evtl. wer helfen? mfg Quote
Manü Posted August 27, 2009 Author Posted August 27, 2009 Oh mann... so ein dummer Fehler! Dankeschön! =) Aber ein Problem hab ich doch noch: ID 7 ist die Selderliste NON-OSD. Gibts da auch eine Channelliste die im OSD Ist die per ActionID aufgerufen werden kann? Quote
Devastation Posted August 27, 2009 Posted August 27, 2009 Hier sind alle IDs aufgelistet. http://de.DVBViewer.tv/wiki/Actions.ini auch OSD-Show Channels 8199 Quote
Manü Posted August 27, 2009 Author Posted August 27, 2009 ahh... dankeschön! leider geht das zu schnell, so dass die OSD-Unten nicht mehr angenommen wird... kann man da irgendwie eine pause einlegen? Quote
Manü Posted August 28, 2009 Author Posted August 28, 2009 Eine Pause im Script von ein paar Millisekunden oder warten bis die vorherige Aktion fertig ist, ist nicht möglich? Quote
Tüftler Posted August 28, 2009 Posted August 28, 2009 Erkläre mal genau was du wann wie erreichen willst, kann deinem Wunsch nicht ganz folgen. Bsp. Wenn die OSD-Senderliste nicht angezeigt wird diese einblenden? Wenn die Senderliste schon angezeigt wird eine Position nach unten/oben? Sollte ich dich richtig verstanden haben probiere es so: sub main(ActionID) Select Case ActionID 'Up Case 20501 If osd.isVisible = false Then SendCommand(8199) 'OSD-Chanellist Else If windowmanager.activeWindowID = 1 Then 'wenn Senderliste angezeigt wird dann SendCommand(78) 'OSD-Up End If End If 'Down Case 20502 If osd.isVisible = false Then SendCommand(8199) 'OSD-Chanellist Else If windowmanager.activeWindowID = 1 Then 'wenn Senderliste angezeigt wird dann SendCommand(79) 'OSD-Down End If End If End Select end sub Quote
Manü Posted August 29, 2009 Author Posted August 29, 2009 jain... Also ich möchte es so, dass wenn das OSD nicht sichtbar ist und ich "Runter" drücke, die Senderliste angezeigt wird. Dann ist allerdings der Aktuelle sender selektiert. Ich möchte nachdem die Senderliste vollständig angezeigt wird noch ein Eintrag nach unten gegangen wird, also ein Sender darunter in der Senderliste selektiert wird. Ich hoffe du kannst mir jetzt Folgen. Dies ist allerdings nicht möglich, da: SendCommand(8199) 'SENDERLISTE SendCommand(79) 'OSD-Down zu schnell hintereinander aufgerufen werden. Es wird zuerst die Senderliste aufgerufen, und währenddessen schon der Befehl für "runter" gesendet. SendCommand(79) müsste eben warten bis die Senderliste fertig aufgebaut ist. Darum die Frage nach der Pause Quote
dbraner Posted August 29, 2009 Posted August 29, 2009 (edited) Versuch mal wscript.sleep 1000 Wartet eine Sekunde (1000 Millisekunden). Ich würde die Wartezeit nicht zu hoch setzen. Der DVBViewer reagiert sensibel, wenn die Ausführung der Command.vbs zu lange dauert. Edited August 29, 2009 by dbraner Quote
Manü Posted August 29, 2009 Author Posted August 29, 2009 424 Laufzeitfehler in Microsoft VBScriptDescription: Object erforderlich: 'wscript' Message: darunter steht keine Nachricht^^ Quote
dbraner Posted August 29, 2009 Posted August 29, 2009 (edited) darunter steht keine Nachricht^^ Sorry. evtl Problem mit Groß-/Kleinschreibung: WScript.Sleep 1000 Großes W großes S Oder Du packst mal das Statement in eine eigene VBS Datei und rufst diese aus der Command.vbs auf. Vielleicht mag die Command.vbs solche Befehle nicht Edited August 29, 2009 by dbraner Quote
Manü Posted August 29, 2009 Author Posted August 29, 2009 Mit Großschreibung leider auch nicht. Wie mach ich das mit dem externen aufruf? Quote
dbraner Posted August 30, 2009 Posted August 30, 2009 Mit Großschreibung leider auch nicht.Wie mach ich das mit dem externen aufruf? Entweder so: WSHShell.Run("wscript C:\unterordner1\meinscript.vbs") oder so: WSHShell = CreateObject("WScript.Shell") WSHShell.Run("wscript C:\unterordner1\meinscript.vbs") Quote
Manü Posted August 30, 2009 Author Posted August 30, 2009 ... funktioniert leider nicht. Schade. Danke trotzdem. :> Quote
Manü Posted August 31, 2009 Author Posted August 31, 2009 .. einen hab ich allerdings noch. Wenn bei einer DVD im Menü bin und dann auf runter drücke kommt auch die senderliste. Kann ich das mit einer IF-Anweisung irgendwie umgehn? Quote
Devastation Posted September 1, 2009 Posted September 1, 2009 (edited) Hier mache ich das mit if isMediaplayback. Es gibt auch was für DVD (finde ich gerade nicht) aber das klappte bei mir nicht deswegen damit. Falls Du Timeshift nutzt musst Du das mit berücksichtigen. Edit: habe isDVD gefunden: http://www.DVBViewer.info/forum/index.php?...st&p=234219 Edited September 1, 2009 by Devastation Quote
Manü Posted September 2, 2009 Author Posted September 2, 2009 Danke! Da hab ich sogar schon vor einigen Monaten schon zahlreiche Beiträge verfasst. Irgendwie währs gut, wenns eine Seite gäb, wo man nachsehen kann welche Boolschen werte man abfragen kann. (isMediaplayback, IsOSDVisible, ...) und wie man sie verknüpfen kann. Auch generell die Syntax. Quote
Tjod Posted September 2, 2009 Posted September 2, 2009 Zum verknüpfen, da geht alles was mit Visual Basic Script möglich ist. Und zu den Variablen, die stehen in DVBViewer COM Interface (Mitgliederbereich). Quote
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.