Datei im eigenen Programm mit dem Windows Explorer öffnen

Startseite Foren Deutsches LiveCode-Forum Datei im eigenen Programm mit dem Windows Explorer öffnen

Schlagwörter: , , ,

Ansicht von 7 Antwort-Themen
  • Autor
    Beiträge
    • #13323
      xamsoftware
      Teilnehmer

        Hallo zusammen,
        unter Windows kennt man ja folgendes: Wenn man sich im Explorer befindet, kann man ja Dateien per Rechtsklick anklicken und anschließend auf Oeffnen mit… gehen. Jetzt meine Frage: Wie kann ich es bewältigen, dass wenn ich z.B. eine Bildbetrachter App programmiert habe, ich im Windows Explorer auf Oeffnen mit.. gehe und anschließend meine App auswähle, dass die Datei dann in meiner App z.B. bei einem Bild in einem Grafikobjekt angezeigt wird?
        Ich hoffe, da kann mir wer weiterhelfen.
        Vielen Dank schon mal im Vorraus,
        Gruß,
        Max

      • #13325
        Klaus Major
        Administrator

          Hi Max,

          ich bin Mac-User, habe aber mal auf der englischen LC-Mailingliste nachgefragt.
          Melde mich, sobald dort etwas Erhellendes gepostet wurde.

          Gruß

          Klaus

        • #13333
          xamsoftware
          Teilnehmer

            Hi Klaus,
            Danke!

            Gruß,

            Max

          • #13341
            Klaus Major
            Administrator

              Hi Max,

              leider war die Reaktion auf der englischen Liste eher mau, es hat nur einer eine etwas kärgliche und nciht sonderlich befriedigende Antwort gegeben.

              Unbedingt nachlesen im Dictionary: “$” (Dollar = erster Eintrag) und “relaunch”!

              Vorweg, wie deine App später in diese Explorer Liste reinkommt, überlasse ich mal Dir…

              Offensichtlich müssen wir hier zwei Szenarien unterscheiden und unterschiedlich darauf reagieren.

              1. Deine EXE ist noch nicht geöffnet
              In dem Fall musst Du einen “startup” Handler im Stackskript erstellen, der die gelieferten Parameter auswertet und darauf reagiert.

              Es werden zwei (oder gar mehr) Parameter (Umgebungsvariablen) mitgeliefert:

              on startup
                ## Diese Message bekommt LC als allererstes, noch weit vor "pre-/openstack"
                ## Wir lassen uns die Variablen anzeigen, immer gut, alles erst zu testen
                put "$0 = " & $0 & CR & "$1 = " & $1 into fld "anzeige of cd 1
              end startup

              $0 sollte der Name (oder Pfad?) Deiner EXE sein
              $1 der Pfad zu dem Bild, was Deine EXE öffnen soll.

              Wenn das obige klappt, kannst Du dann Folgendes machen:
              Erstelle einen Handler, der das Bild dann in einem Bildobjekt anzeigt und rufe diesen Handler etwas zeitversetzt, die Engine benötigt etwas, um sich ganz auszubreiten und den Stack “quasi” erst bereitstellt.

              ## Das hier auch ins Stackskript!

              command bildanzeigen dasbild
                 set the filename of img "Dein Boildobjekt hier..." of cd XYZ to dasbild
              end bildanzeigen

              Und das entsprechende “startup” Skript:

              on startup
                put $1 into einbild
                ## Sofern $1 der Pfad zum Bild ist, siehe oben...
                send "bildanzeigen einbild" to me in 30
                ## 30 = 30 Ticks = eine halbe Sekunde, sollte reichen
              end startup

              Bitte mal ausprobieren, Teil 2 kommt etwas später…

            • #13346
              Klaus Major
              Administrator

                Und weiter geht’s…

                2. Deine EXE ist bereits geöffnet
                Hierzu gab es leider gar keine Infos, ich habe mir das zusammengeklaubt und denke, dann wird die Message “relaunch” an Deine EXE gesendet.

                Auch mit den Umgebungsvarialben wie bei “startup”, allerdings in gänderter Reihenfolge. Daher bitte auch einmal ausprobieren:

                on relaunch
                  ## Wir lassen uns die Variablen anzeigen, immer gut, alles erst zu testen
                  put "$0 = " & $0 & CR & "$1 = " & $1 & CR "$2 = " & $2 into fld "anzeige of cd 1
                end relaunch

                Wenn Du nun weißt, in welcher Variablen der Dateiname des bildes liegt, kannst Du wieder:

                on relaunch
                  put $1 into einbild
                  ## Sofern $1 der Pfad zum Bild ist, siehe oben...
                  send "bildanzeigen einbild" to me in 30
                end relaunch

                Bitte mal ausprobieren und berichten, viel Erfolg!

                Gruß

                Klaus

              • #13540
                Klaus Major
                Administrator

                  Hallo?
                  Kein Interesse an einer Lösung?

                • #13563
                  xamsoftware
                  Teilnehmer

                    Hallo Klaus.
                    habs ausprobiert, hat allerdings leider nicht wie gewünscht geklappt.

                    Gruß,

                    Max

                  • #13565
                    Klaus Major
                    Administrator

                      Die Beispiele sind aus dem Dictionary, sollten also weitgehend stimmen.
                      Was genau hast Du denn geskripted? Und was und wie getestet?
                      Bitte mal Deine Skripte hier posten, danke.

                  Ansicht von 7 Antwort-Themen
                  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.