Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP-CLI/Win, Lesen, Schreiben und Überwachen der Zwischenablage

Einklappen

Neue Werbung 2019

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

  • PHP-CLI/Win, Lesen, Schreiben und Überwachen der Zwischenablage

    Hallo,
    da dies mein erster Beitrag ist: An alle ein herzliches "Hallo"! Freue mich auf viele neue Bekannte, heiße Diskussionen und viele Lösungen!


    ---
    Ich möchte einen Clipboard Monitor mit PHP schreiben und stehe mir dabei völlig auf dem Schlauch... habe gefühlte 10 Stunden gegoogelt ohne wirklichen Erfolg.

    Ziel: Zwischenablage überwachen, Inhalte auslesen, Inhalte nach Datentyp verarbeiten, Inhalte zurück in Zwischenablage schreiben und oder beliebiges Programm aufrufen.

    Beispiel:
    1. Kopiere ich das Wort "Kuchen" in die Zwischenablage soll das Skript automatisch das Wort Kuchen in "Torte" ersetzen
    2. Ist ein Bild in der Zwischenablage soll das Bild direkt via IM berabeitet werden..

    Die Verarbeitung der Daten ist kein Problem für mich. Nur leider komme ich nicht sauber an die Inhalte der Zwischenablage dran.

    Der einzigste derzeit mir bekannte Weg ist das Tool pclip.exe aus den UnxUtils. Leider handelt dieses nur Text und keine andere Datentypen.

    Meine nächste Idee ist via Component Object Model an die Sache heranzugehen - das Thema ist m.E. zu schlecht dokumentiert um hier einfach los zu coden.

    Hat jemand evt. einen Lösungsansatz?

  • #2
    IMHO nicht mit PHP machbar. Die "Zwischenablage" ist zwar nun kein Windows-eigenes Konzept, die Implementation hingegen schon - und PHP hat mit der Zwischenablage des OS überhaupt nichts zu schaffen (daher gibts auch keine Funktionen zum Zugriff darauf).

    Im Gegenteil - *hätte* PHP Zugriff darauf, könnte das eine imense Sicherheitslücke darstellen. Man stelle sich vor, daß der Administrator am Server arbeitet und z.B. ein Passwort per Copy&Paste verwendet. Könnte PHP das Passwort aus der Ablage auslesen, könnte diese Aktion potentiell von einem Benutzer "draussen" durchgeführt werden, das System wäre kompromitiert.
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      PHP für so eine Aufgabe nutzen? Zum einen funktioniert es sowieso NUR auf dem PC wo dann der Webserver auch liegt. Auf die Zwischenablage der Clients wirst du sowieso nicht zugreifen können. Wenn du wirklich auf dem PC wo PHP läuft mit der Zwischenablage arbeitest wird es ja sehr wahrscheinlich dein Heim PC oder sowas sein, von daher frag ich mich ob du dann nicht lieber auf ne ganz andere Sprache wechseln solltest die sowas unterstützt. PHP ist dafür auf keinen Fall gedacht.

      Kommentar


      • #4
        AutoIt z.B.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          MMh.. genau das wollt ich vermeiden - die Sprache wechseln... ich muss eine Menge unstrukturierter Daten (PDFs, XLS, DOC alles was man sich so vorstellen kann) in eine CMS einpflegen - die Übernahme der Daten ist nur via Copy & Paste möglich. Da ich aber immer diverse Dinge entfernen muss wie doppelte Leerzeichen, diverses Markup, bestimmte Phrasen etc wäre es einfacher bei PHP zu beiben - dies kann ich (fast) fließend schreiben....

          Sieht keiner eine Chance an die Inhalte ran zu kommen? Ich kann mir (fast) nicht vorstellen das dies nicht mit COM geht...


          @nikosch: AutoIt schau ich mir sograd an..

          @lstegelitz: Ich betreibe keinen PHP Webserver - ich verwende PHP in diesem Fall als Einzelplatz CLI Lösung.

          Kommentar


          • #6
            Zitat von sebaze Beitrag anzeigen
            Sieht keiner eine Chance an die Inhalte ran zu kommen? Ich kann mir (fast) nicht vorstellen das dies nicht mit COM geht...


            @nikosch: AutoIt schau ich mir sograd an..

            @lstegelitz: Ich betreibe keinen PHP Webserver - ich verwende PHP in diesem Fall als Einzelplatz CLI Lösung.
            Ein ActiveX Control (COM Objekt) kanns in jedem Fall, obs ein Java Applet kann weiß ich grad nicht.

            Javascript scheints auch zu können (wobei der Thread von 2005 ist, eventuell haben die Sicherheitsstandards angezogen..)
            Read content of clipboard - JavaScript - Forums at ProgrammersHeaven.com

            Eine andere Sprache wäre warscheinlich wirklich besser geeignet...
            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

            Kommentar


            • #7
              Mhh...danke für die Antwort - ich glaube das wir irgendwie noch aneinander vorbei reden... das PHP Skript lasse ich via win32_service als Dienst laufen. Javascript steht mir da nicht zur Verfügung - sprich PHP läuft auf Commando Zeile als Prozess und nicht im Browser.

              Ich dachte da eher an soetwas:
              (Dieses Beispiel greift via COM auf Word zu und erzeugt ein Word Dokument... Über dieses Verfahren muss man irgendwie an die Zwischenablage ran kommen.... aber mir ist schleiferhaft wie das funktioniert.. bzw. finde ich keine wirklich Doku dazu..


              PHP-Code:
              // starting word
              $word = new COM("word.application") or die("Unable to instantiate Word");
              echo 
              "Loaded Word, version {$word->Version}\n";

              //bring it to front
              $word->Visible 1;

              //open an empty document
              $word->Documents->Add();

              //do some weird stuff
              $word->Selection->TypeText("This is a test...");
              $word->Documents[1]->SaveAs("c:/Uselesstest.doc");

              //closing word
              $word->Quit();

              //free the object
              $word null

              Kommentar


              • #8
                Zitat von sebaze Beitrag anzeigen
                Mhh...danke für die Antwort - ich glaube das wir irgendwie noch aneinander vorbei reden... das PHP Skript lasse ich via win32_service als Dienst laufen. Javascript steht mir da nicht zur Verfügung - sprich PHP läuft auf Commando Zeile als Prozess und nicht im Browser.
                [/PHP]
                Oi... jetzt rate ich DEFINITIV zu einer anderen Programmiersprache

                Da hast du PHP ja ganz schön durch den Wolf gedreht...
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  Zitat von lstegelitz Beitrag anzeigen
                  Oi... jetzt rate ich DEFINITIV zu einer anderen Programmiersprache

                  Da hast du PHP ja ganz schön durch den Wolf gedreht...
                  Ja klar - und genau deswegen würd ich gern dabei bleiben...

                  Kommentar

                  Lädt...
                  X