Windows XP - mit PHP Prozesse beeinflussen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Windows XP - mit PHP Prozesse beeinflussen?

    Nabend,

    Ein bisschen dumm, dass ich auch hier direkt mit meinem ersten Posting eine Frage stelle. Folgende Frage habe ich schon in einem anderen Forum gestellt, aber wir kamen zu nichts. (Danke auch nochmal an Prometheus)
    Deshalb wollte ich auch hier nochmal mein Glück versuchen...

    Dann leg ich mal los:

    Ich möchte mir selbst ein Webinterface basteln, worüber ich bestimmte Sachen steuern kann. Das ganze findet erstmal nur im Netzwerk statt, später vielleicht auch übers Internet, aber das sollte nicht das Problem sein. Ums vielleicht etwas genauer zu sagen: Ich möchte über einen Laptop meinen Multimedia-PC (mit Anlage, TV etc verbunden) steuern.
    Unter anderem möchte ich den Windows Media Player steuern (Damit möchte ich mein kleines Projekt starten). Das sollte folgendermaßen aussehen: Der Server spielt ganz normal die Musik/Videos ab und ich kann im Browser des Clients Titel und Interpret sehen. Was aber wichtiger ist, ich kann Titel hinzufügen, direkt auswählen und habe die grundlegenden anderen Playerfunktionen (Play, Pause, Stopp, next, previous)

    Zur möglichen Problemlösung:

    Am besten wäre es, PHP zu nutzen. Damit kenn ich mich einigermaßen aus. Nur wie soll ich auf aktive Prozesse, wie den WMP, auf dem Server zugreifen bzw diese steuern?
    Weiterhin könnte ich noch auf Delphi zurückgreifen - Das lern ich gerade aus schulischen Gründen. Vielleicht lässt sich ja damit, oder in Kombination mit PHP was realisieren.

    Jetzt zu den Fakten:

    Der zu steuernde Rechner:
    OS: WinXP Pro
    NW: WLAN an WRT54g-Router (54Mbps)
    Gesteuert werden soll das ganze über andere XP Pro Rechner bzw nur einem. (Mir ist bewusst das man auch ein ganz normales Server-Client-Programm nutzen könnte - möchte dies jedoch über das Webinterface regeln)

    Ich hoffe, dass das an Informationen ausreicht.

    PS: Natürlich erwarte ich keine Komplettlösung, sondern lediglich Tipps, mit welcher/n Sprache/n ich das ganze realisieren soll und wie.

    PPS: Am liebsten wäre mir, wie schon gesagt, ein Web-Interface, dass ich selbst mit PHP realisieren kann. So kann ich das Aussehen selbst bestimmen und bin funktional nicht eingeschränkt

    Danke

    Schönen Abend noch
    Gruß - Rene

  • #2
    man kann schon (mit sehr großem Aufwand) Programme auf dem Server aufrufen und steuern, aber die Ausgabe bleibt auch auf dem Server. Das geht eventuell mit PHP, aber selbst wenn, ist es eine große Verrenkung, denn PHP ist mit Sicherheit nicht dafür gedacht.

    Wenn du auf dem Client was sehen willst, müssen die Anwendungen auch auf dem Client laufen, d.h. du kann z.B. Mediendateien vom Server zum Client senden und beim Client abspielen. Das kann PHP problemlos.

    Kommentar


    • #3
      Nabend,

      Wenn ich es richtig verstanden hab, ist also nur ein streamen möglich. Naja das bringt mir nichts, da ich (für dieses Beispiel) ja den Sound auf dem Server brauche.

      Wie auch schon gesagt, geht es mir in erster Linie um das Steuern. Danach kann man sich immernoch um das Auslesen des Interpreten etc kümmern. Vielleicht gibt es ja für den WMP ein Plug-In, das die Daten des aktuellen Titels in eine Signatur schreibt. Die könnte ich mit PHP ja problemlos auslesen, aber wie gesagt, dass kann jetzt erstmal in den hintergrund rücken.

      Achja ich hatte vergessen, dass ich Xampp auf dem Server benutzen wollte. Nur für den Fall, dass das von belangen ist. (Wenn es einfacher ist, kann ich auch ein Alternatives Programm zu Xampp nutzen)

      PS: Wenn es mit PHP nicht möglich ist, womit kann man es probieren?

      Vielen Dank

      Gruß - Rene

      Kommentar


      • #4
        ähm wenn du eine Fernbedienung bauen willst, dann kannst du z.B. mit jeder höhere Programmiersprache realisieren, auch .NET aber KEINE Webanwendung. Der Sound, das Bild, ... alles bleibt auf dem "Server" du steuert ja nur über WLAN

        Andere Frage: Warum nicht einfach eine normale Dolby Suround Anlage mit Fernbedienung kaufen. Heutzutage können die DVD-Player alle möglichen Formate abspielen. Warum also diese Verrenkung? Außerdem ein Notebook als Fernbedienung ist auch etwas ... unhandlich ... meinst du nicht

        Kommentar


        • #5
          Original geschrieben von asp2php
          ähm wenn du eine Fernbedienung bauen willst, dann kannst du z.B. mit jeder höhere Programmiersprache realisieren, auch .NET aber KEINE Webanwendung. Der Sound, das Bild, ... alles bleibt auf dem "Server" du steuert ja nur über WLAN

          Andere Frage: Warum nicht einfach eine normale Dolby Suround Anlage mit Fernbedienung kaufen. Heutzutage können die DVD-Player alle möglichen Formate abspielen. Warum also diese Verrenkung? Außerdem ein Notebook als Fernbedienung ist auch etwas ... unhandlich ... meinst du nicht
          Alles eine Frage der Perspektive

          Der PC ist ja quasi meine Anlage. Darüber hinaus hab ich damit bei weitem mehr Möglichkeiten, keine Frage.

          Vielleicht ist das ganze auch nicht ganz nachvollziehbar. Naja ich dachte das wäre hier völlig irrelevant, aber ich kann gerne erzählen, warum ich das gerne so realisieren möchte.

          Der "Server" steht bei mir im Wohnzimmer, direkt unter der Vitrine mit Anlage etc. Weiterhin hat der Rechner auch keinen richtigen Monitor, sondern ist mit dem TV (auf der Vitrine) verbunden.
          Jetzt werde ich den Rechner noch weiter ausbauen und er wird zum zentralen Rechner. Ich weiß nicht genau wie ich es sagen soll: Auf jeden Fall habe ich im Schlafzimmer auch eine kleine Anlage - Wie sollte es anders sein, wird diese in naher zukunft auch mit dem Rechner verbunden. Und schon wäre es angemessen, eben die Playlist zu ändern, oder einfach nur den Sound zu stoppen. Naja das ganze ist ein bisschen Annormal, aber es geht ja nicht nur um den Sound. Nur wollte ich erst mal klein anfangen und wissen, auf welcher/n Sprache/n das ganze basieren sollte. Deshalb "nur" erstmal die WMP-Steuerung.

          Ich hab mir noch keine wirklcihen Gedanken darüber gemacht, was danach kommt. Soweit denke ich einfach nicht vorraus
          Aber des weiteren würde mir noch einfallen, einen Stream mit Hilfe des "Clients" zu öffnen, damit ich auf dem "Client" TV schauen kann (über TV-Karte im Server)
          Aber das ist auch wieder was ganz anderes, da geht es schließlich um einen Stream.

          PS: Für das WMP-Projekt: Das Bild und der Sound soll ja auch auf dem Server bleiben - nur sollen einzelne Daten wie Interpret, Titel und überhaupt die Playlist auf der Website erscheinen. Des weiteren soll der WMP auch nur die kommandos erhalten (Play, Pause etc).

          Um es nochmal deutlicher zu sagen: Ein Notebook als Fernbedienung - klar, dass ist nicht nur unhandlich, das ist auch dumm, solange man Server und Client im gleichen Raum betreibt - doch sobald man Raumübergreifend "fernsteuern" will, siehts wieder ganz anders aus.
          Vor allem werde ich auch noch mit einer IR-Fernbedienung arbeiten - jedenfalls im Wohnzimmer - da kann ich Daten vom TV ablesen und Play, Stopp usw hab ich auf der Fernbedienung (in Kombination mit Girder)

          Im Argumentieren war ich jedenfalls noch nie gut, aber ich hoffe, du hälst mich wenigstens nicht für einen Freak oder so


          Gruß - Rene

          Kommentar


          • #6
            Hm... ich würde sagen, dazu ist eine Webanwendung nicht wirklich brauchbar, aber du kannst versuchen mit PHP über COM folgende COM/DCOM ansprechen:

            Windows Media Player: C:\Windows\System32\msdxm.ocx bzw. C:\Windows\System32\wmp.dll

            Damit kann man den Player öffnen und steuern.

            IMHO ist aber eine WinApp die bessere Lösung

            Kommentar


            • #7
              Gudden nochmal,


              Gut, das alles ist ein bisschen neu für mich. Bin eigentlich nie über PHP hinausgekommen und weiß auch nichts über COM.

              Aber ich werd mal schauen, was ich dazu im Internet zu lesen bekomm und werde dann versuchen zu basteln. Dann meld ich mich wieder


              Vielen Dank

              Gruß - Rene

              Kommentar


              • #8
                Ich habe jetzt nicht alles gelesen, aber hat schon jemand übern Tellerrand gelinst? -> http://www.winamp.com/plugins/browse...er=C&query=Web

                Kommentar


                • #9
                  Original geschrieben von onemorenerd
                  Ich habe jetzt nicht alles gelesen, aber hat schon jemand übern Tellerrand gelinst? -> http://www.winamp.com/plugins/browse...er=C&query=Web
                  Ich war nie ein richtiger Winamp-Fan. Natürlich könnte ich es auch mit Winamp und den benötigten Plug-In machen. Nur kann ich da selbst dran "arbeiten"? - Wenn nicht, fällt Winamp schonmal weg, da auch der WMP über solche Plug-Ins verfügt (Manche halt kostenpflichtig, aber andere auch gratis)

                  Naja bevor das ganze hier in einer WMP vs Winamp Diskussion endet, werde ich einfach mal schauen, was für Plug-Ins es für Winamp gibt und ob da eins bei ist, welches meinen Wünschen entspricht

                  PS: Eine Alternative zum WMP zu nehmen, halt ich auch in sofern ungünstig, dass ich in Zukunft auch andere Programme steuern will. Gut, darum ging es bis jetzt nicht - ich werde auf jeden Fall mal schauen was sich mit asp2php's Tipps alles anstellen lässt


                  Gruß - Rene

                  Kommentar


                  • #10
                    Soo...

                    Es war viel Zeit zum experimentieren.... Ich hab jetzt so einiges auf die Reihe bekommen.

                    Natürlich muss das ganze noch überarbeitet werden. So kann ich zwar mittlerweile den WMP steuern (Ich sende mit Hilfe von sendkeys() tastenkombinationen an den WMP) allerdings werden noch keine Daten ausgelesen.
                    Jetzt habe ich ein PlugIn gefunden, dass den WMP steuern und auslesen kann! Doch hab ich jetzt ein Problem.

                    Und zwar ist die Frage, wie ich folgendes VBS in PHP umwandle:

                    Set WMPplugin = CreateObject("WMPuICE.WMPApp")
                    Set WMPCtrl = WMPplugin.Core
                    WMPCtrl.Controls.pause

                    Mein Lösungsansatz ist folgender (funktioniert nur nicht?):

                    $WMPplugin = new COM("WMPuICE.WMPApp");
                    $WMPCtrl=$WMPplugin->Core;
                    $WMPCtrl->Controls->pause;

                    Vielleicht sieht man das Problem ja schon. Ich hab jedenfalls absolut keine Ahnung, wo der Fehler liegt. Hier nochmal ein paar Infos, die ich mit Hilfe von

                    com_print_typeinfo($WMPplugin);

                    ausgelesen habe:

                    class IWMPApp { /* GUID={4ACBB5B8-B718-4B15-89C3-7046B6A164F5} */ /* DISPID=1610612736 */ function QueryInterface( /* VT_PTR [26] [in] --> ? [29] */ &$riid, /* VT_PTR [26] [out] --> VT_PTR [26] */ &$ppvObj ) { } /* DISPID=1610612737 */ /* VT_UI4 [19] */ function AddRef( ) { } /* DISPID=1610612738 */ /* VT_UI4 [19] */ function Release( ) { } /* DISPID=1610678272 */ function GetTypeInfoCount( /* VT_PTR [26] [out] --> VT_UINT [23] */ &$pctinfo ) { } /* DISPID=1610678273 */ function GetTypeInfo( /* VT_UINT [23] [in] */ $itinfo, /* VT_UI4 [19] [in] */ $lcid, /* VT_PTR [26] [out] --> VT_PTR [26] */ &$pptinfo ) { } /* DISPID=1610678274 */ function GetIDsOfNames( /* VT_PTR [26] [in] --> ? [29] */ &$riid, /* VT_PTR [26] [in] --> VT_PTR [26] */ &$rgszNames, /* VT_UINT [23] [in] */ $cNames, /* VT_UI4 [19] [in] */ $lcid, /* VT_PTR [26] [out] --> VT_I4 [3] */ &$rgdispid ) { } /* DISPID=1610678275 */ function Invoke( /* VT_I4 [3] [in] */ $dispidMember, /* VT_PTR [26] [in] --> ? [29] */ &$riid, /* VT_UI4 [19] [in] */ $lcid, /* VT_UI2 [18] [in] */ $wFlags, /* VT_PTR [26] [in] --> ? [29] */ &$pdispparams, /* VT_PTR [26] [out] --> VT_VARIANT [12] */ &$pvarResult, /* VT_PTR [26] [out] --> ? [29] */ &$pexcepinfo, /* VT_PTR [26] [out] --> VT_UINT [23] */ &$puArgErr ) { } /* DISPID=1 */ /* VT_DISPATCH [9] */ /* property Core */ var $Core; /* DISPID=2 */ function Open( ) { /* method Open */ } /* DISPID=3 */ function Close( ) { /* method Close */ } /* DISPID=4 */ /* VT_BOOL [11] */ /* property Running */ var $Running; /* DISPID=4 */ /* property Running */ var $Running; /* DISPID=5 */ function FullScreen( ) { /* method FullScreen */ } /* DISPID=6 */ function Up( ) { /* method Up */ } /* DISPID=7 */ function Down( ) { /* method Down */ } /* DISPID=8 */ function Left( ) { /* method Left */ } /* DISPID=9 */ function Right( ) { /* method Right */ } /* DISPID=10 */ function Select( ) { /* method Select */ } }

                    //Tut mir Leid, dass die Tabelle so gesprengt wird

                    Dazu noch: Die "einfachen" Funktionen funktionieren:
                    $WMPplugin->fullscreen;
                    $WMPplugin->open;
                    $WMPplugin->close;
                    etc...

                    So und zum Schluss noch die genaue Fehlermeldung:

                    Fatal error: Uncaught exception 'com_exception' with message 'Source: Unknown
                    Description: Unknown' in C:\Programme\xampp\htdocs\myhtdocs\homecontrol\index.php:539
                    Stack trace: #0
                    C:\Programme\xampp\htdocs\myhtdocs\homecontrol\index.php(539): doVBS() #1
                    C:\Programme\xampp\htdocs\myhtdocs\homecontrol\index.php(533): doVBS() #2 {main} thrown in
                    C:\Programme\xampp\htdocs\myhtdocs\homecontrol\index.php on line 539


                    Ich hoffe ich habe genug Infos gegeben, um das roblem zu beheben.

                    Vielen Dank

                    Mit freundlichen Grüßen
                    Rene
                    Zuletzt geändert von moista; 20.11.2005, 23:27.

                    Kommentar


                    • #11
                      //Tut mir Leid, dass die Tabelle so gesprengt wird
                      ist mir schnuppe, wenn du aber nicht schnellstens änderst, dann kannst du Hilfe woanders suchen

                      1. und letzte Verwarnung




                      ... shit ... wo ist denn nun der sende-button

                      Kommentar


                      • #12
                        Wie gesagt, tut mir echt leid... Ich hatte mindestens 10 mal versucht, manuell ein Umbruch einzufügen.... hat auch nicht gebracht... Naja hab jetzt einfach mal das [.Code.] weggelassen, dann scheints ja zu passen.

                        Ich hoffe, man ist jetzt nicht allzu sauer auf mich

                        Gruß - Rene

                        Kommentar


                        • #13
                          Fehlermeldung?

                          Kommentar


                          • #14
                            Original geschrieben von asp2php
                            Fehlermeldung?
                            Fatal error: Uncaught exception 'com_exception' with message 'Source: Unknown
                            Description: Unknown' in C:\Programme\xampp\htdocs\myhtdocs\homecontrol\index.php:539
                            Stack trace: #0
                            C:\Programme\xampp\htdocs\myhtdocs\homecontrol\index.php(539): doVBS() #1
                            C:\Programme\xampp\htdocs\myhtdocs\homecontrol\index.php(533): doVBS() #2 {main} thrown in
                            C:\Programme\xampp\htdocs\myhtdocs\homecontrol\index.php on line 539


                            Steht auch in meinem "spreng-Post", vielleicht hilft dir da auch das com_print_typeinfo($WMPplugin); weiter

                            Kommentar


                            • #15
                              funktioniert der VB Code? schon getestet?

                              Ansonstens mach mal so:
                              PHP-Code:
                              echo "<pre>\n";
                              com_print_typeinfo($WMPplugin);
                              echo 
                              "</pre>\n"
                              poste dann die Ausgabe hierein, denn wie kann man denn da zurecht finden

                              Kommentar

                              Lädt...
                              X