Seite 2 von 2 ErsteErste 12
Zeige Ergebnis 11 bis 17 von 17

Y.A.R.D.-Timer wird nicht gesetzt

Erstellt von Bahle, 21.02.2007, 17:11 Uhr · 16 Antworten · 1.730 Aufrufe

  1. #11
    Benutzerbild von Bahle

    Registriert seit
    02.02.2007
    Beiträge
    9
    Hi André!

    Zitat Zitat von AndreWeber
    Was vielleicht gehen könnte ... die Startreihenfolge verändern...
    d.h. den Dienst von PVR-S auf manuell setzen...

    erst Girder Starten (der sollte ja ne Yards.exe aufmachen)
    danach den Dienst PVR-S starten?
    (net start ...Dienstname...)
    Funktioniert leider nicht, Problem besteht weiterhin.

    Soeben hab ich rausgefunden, dass wenn ich den PVR-S Service nicht als SYSTEM ausführen lasse, keine Aufnahmen gestartet werden. Ebenso bleiben dann die Buttons "Standby" und "Shutdown" ohne Funktion.

    Was auch seltsam ist: Wenn der PVR-S Dienst als SYSTEM läuft (default) und keine yards.exe aktiv ist, startet PVR-S diese als SYSTEM, aber es kommt dann wieder die Meldung "yard not ready". Bei aktiviertem Datenaustausch zwischen Dienst und Desktop erscheint auch ein Fenster mit dieser Fehlermeldung, sonst steht diese nur im Logfile und yards.exe läuft weiter als SYSTEM, wahrscheinlich weil die Meldung nicht weggeklickt werden kann (ist ja dann unsichtbar).

    Tschüss,
    Markus

  2.  
    Anzeige
  3. #12
    Benutzerbild von STSC

    Registriert seit
    08.01.2003
    Beiträge
    1.220
    Hallo Leute,

    ich werde mir das Problem die Woche mal anschauen und dann nach einer Lösung suchen.

  4. #13
    Benutzerbild von AndreWeber

    Registriert seit
    02.08.2005
    Beiträge
    1.446
    Hi,
    ist Ok - sollte ich noch was ändern müssen ... sag bescheid... falls die Kommunikation via COM (ActiveX) doch zuviel Probleme macht..

    André

  5. #14
    Benutzerbild von STSC

    Registriert seit
    08.01.2003
    Beiträge
    1.220
    Kann momentan so viel sagen

    Setze so die WakeUp Time, das kommt direkt aus dem COM Server.
    Code:
    Dim yard As Yards.Yard = GetYardInstance()
    yard.SetWakeupTime(DateTime)
    Die Instance holfe ich mir auch über den COM Server.
    Code:
        Private Function GetYardInstance() As Yards.Yard
            Dim yardInstance As Object = Nothing
            Try
                yardInstance = Marshal.GetActiveObject("Yards.Yard")
            Catch ex As Exception
            End Try
            If yardInstance Is Nothing Then
                'MsgBox("Instance not found")
                Return New Yards.Yard
            Else
                'MsgBox("Instance found")
                Return yardInstance
            End If
        End Function
    Den COM Server starte ich nie manuell, dass erledigt er selber wenn eine Instanz erstellt wird. Vermute dass es entweder an den verschiedenen User Accounts liegt oder der Yard manche Sachen in verschiedene Registries einträgt???

  6. #15
    Benutzerbild von AndreWeber

    Registriert seit
    02.08.2005
    Beiträge
    1.446
    Hallo,
    vom vorgehen her ist das nur zum Teil so wie ich das gemacht habe...
    das suchen mittels "Marshal.GetActiveObject("Yards.Yard")" ist Ok - ich denke aber es scheitert daran das die Liste worin GetActiveObject sucht ... wie die Prozesse welche unter dem Desktop ausgeführt werden - z.B. ist mir bekannt das der gleiche COM Server in zwei verschiedenen Terminalserver Sitzungen laufen können und getActiveObject trotzdem immer nur die Instanz liefert aus der gleichen Sitzung.
    (ich denke mal mit einem Dienst verhält sich das ähnlich? - er wird nicht das ActiveObject finden was im Context des angemeldeten Benutzers läuft oder umgekehrt ... wird das getActiveObject im Girder Plugin das vom Dienst registrierte finden...?? ... ich lasse mich dann gerne korrigieren.)

    >>Return New Yards.Yard
    davon würde ich abraten - weil das starten macht dann nicht Yard selbst sondern Windows z.b. die COM-Api ... was den Nebeneffekt hat ... das die Yards.exe sofort wieder beendet wird wenn du den Interface Zeiger (Referenz) welchen du erhalten hast auf NULL (nil ,nothing) setzt.
    Den COM Server starte ich nie manuell, dass erledigt er selber wenn eine Instanz erstellt wird.
    nein das macht nicht die Yards.exe selbst sondern die COM/ActiveX API von Microsoft...


    von daher hab ich bei mir das Starten in meinem Befehlszeilentools so realisiert:

    GetActiveObject( ... )
    wenn nicht da...
    ... lese ich aus einem RegistryKey (zur Zeit leider nur unter HkeyCurrentUser vorhanden)
    ... den Dateinamen der Yards.exe einschlieslich Pfad aus ... und starte die Yards.exe
    via CreateProcess... und schaue danach nochmal
    mittels GetActiveObject nach ob es nun da ist... diesen Interface Zeiger kann man getrost auch mal wieder Null (Nil, Nothing) setzen ohne dass dadurch die Yards.exe beendet wird.

    Vermute dass es entweder an den verschiedenen User Accounts liegt oder der Yard manche Sachen in verschiedene Registries einträgt???
    Yard trägt sich derzeit nur im HKEY - Current User ein - das dürfte wohl ein grösseres Problem sein - da dein Dienst ja unter einem System Account ausgeführt wird - und somit der Yards Prozess auch unter dem System Account gestartet wird ... was wiederum dazu führt dass die Konfiguration vermutlich nicht zuverlässig gefunden werden kann??

    André

  7. #16
    Benutzerbild von STSC

    Registriert seit
    08.01.2003
    Beiträge
    1.220
    Ok, ich denke die Lösung wäre dann, wenn ich Yards.exe mit CreateProcessAsUser starten würde. Dann dürfte auch das HkeyCurrentUser Problem gelöst sein. Optimal finde ich es aber trotzdem noch nicht, da dann der Yards Prozess nur läuft wenn ein User angemeldet ist.

  8. #17
    Benutzerbild von AndreWeber

    Registriert seit
    02.08.2005
    Beiträge
    1.446
    Tja Yard ist halt nicht als Systemdienst geplant ... wer braucht auch schon ne Fernbedienungssteuerung wenn kein User angemeldet ist? und somit keine fernbedienbare Oberfläche läuft?
    CreateProcessAsUser ... ist denke ich auch mal nicht so optimal ... finde ich ... da dann der User nicht mehr an die Konfiguration herankommt - wenn der Prozess durch deinen Dienst gestartet wurde - erscheint kein Icon neben der Uhr - worüber der Anwender YARD konfigurieren könnte.

    Wir sollten erstmal versuchen zu klären warum dein Dienst nicht die laufende Yards.exe findet welche via Autostart geladen wurde... weil solange das nicht geht wird auch eine im richtigen Kontext gestartete Yards.exe nichts nützen - da diese dann ja vom Girder Plugin wohl auch nicht gefunden werden kann..?

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Win TV PVR-350 wird nicht erkannt
    Von carnap im Forum Grafikkarten & TV-Karten
    Antworten: 3
    Letzter Beitrag: 22.01.2009, 11:29
  2. Lcd TV wird (nicht) erkannt
    Von oktaviaman im Forum Grafikkarten & TV-Karten
    Antworten: 5
    Letzter Beitrag: 26.01.2008, 16:02
  3. Cpu wird nicht richtig erkannt
    Von rizo im Forum Hardware generell
    Antworten: 4
    Letzter Beitrag: 05.04.2007, 09:17
  4. Wenn`s nicht mehr kühl wird...
    Von Marcellino im Forum Kühlung
    Antworten: 10
    Letzter Beitrag: 05.12.2005, 11:35
  5. Winamp wird nicht beendet
    Von Luke_1980 im Forum myHTPC
    Antworten: 0
    Letzter Beitrag: 26.03.2004, 12:23