Jump to content

Komm mit commands.vbs nicht zurecht.


Manü

Recommended Posts

Posted

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.

 

Aktioneneditor.jpg

 

 

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

Posted

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?

Posted

ahh... dankeschön!

leider geht das zu schnell, so dass die OSD-Unten nicht mehr angenommen wird... kann man da irgendwie eine pause einlegen?

Posted

Eine Pause im Script von ein paar Millisekunden oder warten bis die vorherige Aktion fertig ist, ist nicht möglich?

Posted

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

Posted

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 ;)

Posted (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 by dbraner
Posted
424 Laufzeitfehler in Microsoft VBScript

Description: Object erforderlich: 'wscript'

Message:

 

darunter steht keine Nachricht^^

Posted (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 by dbraner
Posted

Mit Großschreibung leider auch nicht.

Wie mach ich das mit dem externen aufruf?

Posted
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")

Posted

... funktioniert leider nicht. Schade.

Danke trotzdem. :>

Posted

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

Posted (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 by Devastation
Posted

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.

Posted

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

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