roman: js vs. c++ (oder wie übergebe ich js an c++)

hallo ihr da draußen, ich hoffe ich könnt mir einen kleinen tipp geben.

mein problem:

es wird (in c++) eine 32 bit application für windows geschrieben die der user öffnet
um dann an eine bestimmte url geleitet zu werden. wenn der browser geöffnet ist
soll durch ein js wieder ein programm gestartet werden das bestimmte daten sendet.
nach dem senden soll das js wieder zu der am anfang geöffneten application zurückkehren.

sodalla wie macht man sowas und wie weis das js zu welchem programm es zurückkehren
soll, wenn mehrere prozesse (beim enduser) im hintergrund laufen???

please mail soon...

roman

  1. Hallo Roman,

    es wird (in c++) eine 32 bit application für windows geschrieben die der user öffnet
    um dann an eine bestimmte url geleitet zu werden. wenn der browser geöffnet ist
    soll durch ein js wieder ein programm gestartet werden das bestimmte daten sendet.
    nach dem senden soll das js wieder zu der am anfang geöffneten application zurückkehren.

    Ich versuche mal, mir ein Ablaufdiagramm zu basteln:

    Programm1 sendet zum Browser eine URL mit dem Wunsch, sie doch bitteschön zu öffnen
    (z.B.: netscape 'openURL http://die.url.tld')

    Der Browser interpretiert ein JS, das ein externes Programm2 startet. Das sollte schonmal nicht funktionieren. Sollte.
    Vorausgesetzt, das Programm2 startet tatsächlich auf dem selbem Rechner, wie das Programm1 soll es Daten senden.

    In der Zwischenzeit wartet das Programm1 auf ein Signal, ob Programm2 erfolgreich Daten gesendet hat.
    Du möchtest, das das JS dieses Signal gibt, warum nicht Programm2?
    Wenn beide auf demselben Rechner laufen, sollte das doch kein Problem darstellen?
    Ein wenig Kenntnis über Interprozesskommunikation vorausgesetzt.

    sodalla wie macht man sowas und wie weis das js zu welchem programm es zurückkehren
    soll, wenn mehrere prozesse (beim enduser) im hintergrund laufen???

    In dem Fall spielt das keine Rolle, das Signal muß nur einen eindeuigen Absender haben.

    (funktioniert am leichtesten über server-client)

    please mail soon...

    Auf keinen Fall, das ist ein öffentliches Forum!

    so short

    Christoph

    PS:
    Irgendwie hört sich das an, wie ein Trojaner?????
    nichts für ungut
    CZ

    1. Hallo Christoph,

      sorry, aber vielleicht habe ich mich ein bischen zu kompliziert ausgedrückt.
      der enduser hat ein programm mit dem er daten zu mir sendet.
      wenn er auf den button klickt öffnet sich der browser mit einem bestimmten url.
      in dieser site ist widerum ein button der programm2 öffnet (alles auf dem client).
      nach dem senden schließt sich programm2 wieder aber mein browserfenster bleibt noch
      geöffnet. die daten die jetzt in einem verzeichnis liegen müssen jetzt im browser (per js)
      angezeigt werden.
      ist das möglich???

      PS.ich kann dich beruhigen. ist nix illegales.

      roman

      Ich versuche mal, mir ein Ablaufdiagramm zu basteln:

      Programm1 sendet zum Browser eine URL mit dem Wunsch, sie doch bitteschön zu öffnen
      (z.B.: netscape 'openURL http://die.url.tld')

      Der Browser interpretiert ein JS, das ein externes Programm2 startet. Das sollte schonmal nicht funktionieren. Sollte.
      Vorausgesetzt, das Programm2 startet tatsächlich auf dem selbem Rechner, wie das Programm1 soll es Daten senden.

      In der Zwischenzeit wartet das Programm1 auf ein Signal, ob Programm2 erfolgreich Daten gesendet hat.
      Du möchtest, das das JS dieses Signal gibt, warum nicht Programm2?
      Wenn beide auf demselben Rechner laufen, sollte das doch kein Problem darstellen?
      Ein wenig Kenntnis über Interprozesskommunikation vorausgesetzt.

      sodalla wie macht man sowas und wie weis das js zu welchem programm es zurückkehren
      soll, wenn mehrere prozesse (beim enduser) im hintergrund laufen???

      In dem Fall spielt das keine Rolle, das Signal muß nur einen eindeuigen Absender haben.

      (funktioniert am leichtesten über server-client)

      please mail soon...

      Auf keinen Fall, das ist ein öffentliches Forum!

      »»

      so short

      Christoph

      PS:
      Irgendwie hört sich das an, wie ein Trojaner?????
      nichts für ungut
      CZ

      1. Hallo roman!

        Irgendwie habe ich das Gefuehl, Du kitzelst Dir mit dem linken Zeh im rechten Ohr ;-)
        Was genau macht Programm1 und was Programm2?
        Wieso willst Du die Dateien per JS im Browser anzeigen?

        Kleiner Tip: Wenn Du eh schon mit VC++ proggst, schau Dir mal die Inet-relevanten Klassen der MFC an.
        CInternetSession, CInternetConnection, CHttpConnection usw.

        Gruß
        Thomas (der P)

        1. ok ich probiers nochmal anders.

          die c++ application kommt nicht von mir. ich bin für das js zuständig.
          der browser muß einfach daten anzeigen die vorher von einem großrechner
          geholt worden sind und jetzt in irgend einem verzeichnis liegen.

          da js. muß also das programm zum daten holen(senden) öffnen,
          danach die daten im browser anzeigen.???

          1. hi!

            die c++ application kommt nicht von mir. ich bin für das js zuständig.
            der browser muß einfach daten anzeigen die vorher von einem großrechner
            geholt worden sind und jetzt in irgend einem verzeichnis liegen.

            Versteh ich auch nicht: egal wer nun das C++ Programm schreibt, warum
            holt das seine Daten nicht selbst und zeigt sie dann an bzw. lässt
            sie anzeigen?

            bye, Frank!

            1. liebe leute,

              erstmal vielen vielen dank für die freundliche unterstützung.
              mir raucht im moment so dermaßen der kopf daß ich selbst nicht mehr weis
              wo hinten und vorne ist.
              der "BOSS" wills halt so. aber ich werde jetzt nochmal den programmierer
              fragen ob man das ganze nicht vereinfachen kann.

              also viele grüße an alle

              roman

          2. Hi Roman,

            die c++ application kommt nicht von mir. ich bin für das js zuständig.
            der browser muß einfach daten anzeigen die vorher von einem großrechner
            geholt worden sind und jetzt in irgend einem verzeichnis liegen.

            Wenn sie in "irgendeinem" Verzeichniss stecken, muß Programm2 einen Reload der Seite initiieren mit der Datenaddresse im Gepäck.
            Wenn das Verzeichniss vorgegeben ist, könnte ein Timeout helfen, ist dann aber nur ein sehr billiger Krückstock!

            da js. muß also das programm zum daten holen(senden) öffnen,
            danach die daten im browser anzeigen.???

            Mein Vorschlag zur Vereinfachung: Wie wäre es, die Daten von Prog1 aus direkt in die URL zu packen?
            Oder Prog2 durch Prog1 zu starten, ohne den mühsamen Umweg?

            Dein Problem wird es sein, a) ein externes Programm per JS zu starten und b) ein Verzeichniss auf der Platte zu lesen.

            Aber so oder so, _nur_ mit JS ist es nicht möglich. Eine Interpretersprache wie JS hat ihre (gewollten) Grenzen.
            Mit Java kein Problem. Nur kommen da (zumindest sollten) Sicherheitsmeldungen.

            Wenn es sich nur um die Adresse des Users, oder ähnlich kleine Textmengen handelt, könntest Du auch einfach ein Formular zur Verfügung stellen.
            Oder ein Fensterchen geht auf, darin die Daten und der User möge vie C&P die Daten in ein Textarea pasten.
            Wenn oben auf dem Fenster etwas von "Aus Sicherheitsgründen bitten wir Sie ..." steht, macht der User das auch.

            Dann muß aber auch die Seite mit 128 Bit verschlüsselt sein.

            Alles in Allem halte ich das Konzept für mißlungen, mag aber aufgrund mangelnder Detailkenntniss nichts behaupten.

            so short
            Christoph

          3. Hallo roman!

            ok ich probiers nochmal anders.

            die c++ application kommt nicht von mir. ich bin für das js zuständig.
            der browser muß einfach daten anzeigen die vorher von einem großrechner
            geholt worden sind und jetzt in irgend einem verzeichnis liegen.
            da js. muß also das programm zum daten holen(senden) öffnen,

            Und das soll beim Client ablaufen?? Was ist, wenn jetzt 10 User das Programm starten? Dann liegen die Dateien auf 10 Rechnern rum?? seltsam seltsam! Wozu dann einen Grossrechner??

            danach die daten im browser anzeigen.???

            Wie willst Du mit js Verzeichnisse durchsuchen?? Du kannst die Daten hoechstens per "file:///c/irgendwo/verzeichnis" im Browser anzeigen.
            Weiterhin kannst Du nicht mit js nach laufenden Prozessen "sniffen". Das C++ Programm muss also fuer das Update sorgen.

            Ich kenne viele Loesungen, die "von hinten ins Auge gelangt" sind. Wessen krankem Hirn entspringt so etwas?? ;-)

            So, nachdem ich jetzt genug Bloedsinn gesabbert habe, schlag dem Boss der Sache mal folgendes vor:

            Das Programm soll den Download / das Senden der Dateien in einer HTML-Datei protokollieren (sind ca 5 Zeilen Code) und dann den Browser mit dieser Datei aufrufen. Das spart Zeit und Ressourcen.
            Und wenn er das Programm aus dem Browser heraus starten will, muessen die User entweder jedesmal die Sicherheitsabfrage mitnehmen oder er laesst ein Plugin programmieren, der alle oder bestimmte lokal verfuegbaren Programme starten kann.

            Mehr faellt mir dazu jetzt nicht ein.

            Gruß
            Thomas (der P)