1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Skripte GUI-fizieren

Dieses Thema im Forum "AppleScript" wurde erstellt von HankEr, 07.12.07.

  1. HankEr

    HankEr Grahams Jubiläumsapfel

    Dabei seit:
    06.11.07
    Beiträge:
    102
    Werte Entwickler,
    schätzungsweise war das schon mal Thema, aber leider finde ich nichts dazu was genau zu meinem Problem paßt.

    Nachdem ich nach 14 Jahren Linux jetzt zu Mac OS X gewechselt habe, befindet sich das eine oder andere Shell- und Perlskript in meiner Sammlung. Da dankenswerterweise im Leoparden schon fast alles was man so braucht (außer ImageMagick) bereits vorinstalliert ist, laufen die auch alle noch ganz ohne oder mit minimalen Anpassungen.

    Soweit, so gut.

    Jetzt ist das Ganze aber natürlich wenig Mac-ish und eine GUI für die Skripte muß her.

    Für einfachste Skripte die nur eine Datei entgegennehmen tut es ein Platypus-Droplet für alles Anspruchsvollere tappe ich aber noch ein wenig im dunklen.

    Creating Shell Script Actions habe ich mal durchgespielt und das ist sicher eine Lösung, allerdings weiß ich nicht ob das nicht schon Overkill für meine Anwendungen ist, da diese den Automator eher nicht brauchen, aber vielleicht habe ich da auch nur ein Verständnisproblem.

    OnMyCommand scheint auch einiges zu bieten, da steige ich aber noch nicht so recht durch wie ich da die Parameter übergeben kann.

    Dann kommt vom System nicht immer alles so wie ich das will, z.B. bekomme ich beim draggen einer Safari-Adresse eine .webloc Datei und keinen String der URL wie ich das bräuchte.

    Was ist also ein geeignetes Tool um solche GUIs schnell und schmerzfrei zu erstellen?

    Nehmen wir mal ein Beispiel:

    Ich habe ein Skript w2p.pl, das ein URL entgegen nimmt und mir diese, abhängig von verschiedenen Parametern, für meinen Palm aufbereitet.

    Als Parameter gibt es: -u <URL> -i [include Images] -n <NAME> -d <DEPTH> -r <RESOLUTION>

    Die URL ist logischerweise Pflicht und normalerweise auch der Name wenn nicht alles TMP heißen soll. Alle anderen Parameter haben auch Vorbelegungen wenn sie nicht angegeben werden.

    Wie bastle ich dazu möglichst einfach und elegant ein grafisches Frontend bei dem ich mich nach Möglichkeit nicht darum kümmern muß ob die URL jetzt aus dem Clipboard einfüge oder aus dem Browser heraus ziehe?

    Danke!
     
  2. crossinger

    crossinger Doppelter Melonenapfel

    Dabei seit:
    30.07.06
    Beiträge:
    3.369
    Das war schon mal Thema hier im Forum (ist lange her) und ich habe noch ein Bookmark aus jenem Thread:

    http://www.bluem.net/downloads/pashua/

    Vielleicht ist das ja was für dich. Habe es aber nie selbst ausprobiert, sondern nur die Info gebunkert. :)

    *J*
     
    Bier gefällt das.
  3. HankEr

    HankEr Grahams Jubiläumsapfel

    Dabei seit:
    06.11.07
    Beiträge:
    102
    Ha, perfekt, genau sowas habe ich gesucht. Wunderbar einfach. Da bekommen die relevanten Skripte ein GUI-Wrapper-Skript dazu und werden damit sowohl im Terminal als auch grafisch ausführbar.

    Kein Interfacedesigner geklicke und keine aufwändige Kleberlogik.

    Mich wundert nur, daß Pashua nicht sonderlich bekannt zu sein scheint, zumindest habe ich keinerlei Hinweise darauf gefunden bei meinen Recherchen.

    Naja, jetzt spiele^H^H^H^H^H^Harbeite ich ein wenig damit und dann sehen wir weiter.

    Vielen Dank crossinger!

    Was auf den ersten Blick wohl nicht da ist, ist eine Möglichkeit einen Parameter als Drop-Senke zu vereinbaren, aber das ist verschmerzbar, dafür kann man Dateien in Fileselectfelder werfen und aus Safari und Firefox aus kann ich auch URLs auf ein Textfeld werfen und bekomme das von mir erwartete Ergebnis. Interessanterweise wird bei einer URL aus dem Opera der Titel der Seite eingefügt und nicht die Adresse.
     
  4. HankEr

    HankEr Grahams Jubiläumsapfel

    Dabei seit:
    06.11.07
    Beiträge:
    102
    Pashua finde ich gut

    Jetzt sind die ersten Skripte GUI-fiziert und ich muß sagen: Feine Sache das. :cool:

    Habe zwar erst Perl benutzt aber im Prinzip ist das alles das gleiche.

    Nach dem ersten Mal dauert es vielleicht jeweils 10min um ein vorhandenes Skript mit einer Oberfläche zu versehen und in eine standalone Applikation zu verwandeln; und da ist das Aussuchen eines Icons schon mit dabei. Jetzt mache ich mir dafür noch einen Templategenerator (mit Pashua GUI oder in Textmate) und das Leben ist schön :)

    Klar es ist nicht das Wunderding, das alles kann, aber das ist ja auch nicht seine Aufgabe. Neben dem schon genannten Punkt (Drop) ist auch noch erwähnenswert, daß man pro Programm nur einen Dialog hat, aber das reicht ja für die meisten Skripte völlig aus. Meine haben i.d.R. nie mehr als 3-6 Parameter und Wizards brauche ich dafür wahrlich nicht.

    Die Sache mit dem Drop muß ich mir aber nochmal näher ansehen, oder hat da jemand einen Tipp für mich wie man in Pashua sagen kann welcher Parameter den Drop-Paramater entgegennimmt?
     
  5. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Also ich brauche eigentlich nie mehr als das, was mir AppleScript bietet, um ein "GUI" zu erstellen. Also bastel ich mir ein AppleScript, das mit "chooe file|list|folder" Daten abfragt, eventuel noch einen "display dialog" oder im Notfall einen "display alert" hat. Dann noch flott einen "on open some_items" handler dazu und schon ist das ganze ein droplet.

    Wenn man das perl script dann noch entweder direkt in den AppleScript Code packt oder im Program Bundle unter .../Contents/Resources/ ablegt, hat man ein schönes, verschiebbares, maciges Script. Man kann sogar ein icon dazupacken, wenn man grafisch begabt ist.

    Der run und open Handler sehen dann meist so aus, wie im verlinkten Thread bei den PerlMonks gezeigt.
     
  6. HankEr

    HankEr Grahams Jubiläumsapfel

    Dabei seit:
    06.11.07
    Beiträge:
    102
    Beispiel?

    Klingt für jemanden der keine Ahnung von AppleScript hat erstmal recht kompliziert. Hat da mal jemand ein Beispiel für mich zum Einstieg? Der Thread bei den Perl Monks leifert mir da leider noch nicht die Erleuchtung.

    Perl-, Python-, Shell oder Ruby-Skript, ein paar Parameter die via Fileselect, Texteingabe, Dropdown und Checkbox befüllt werden. Eines davon Drop-Ziel und das Ganze als .app.

    Danke!
     
  7. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Nenene... Selbst basteln macht schlau!

    Öffne Dir halt mal den Script Editor und probiere aus.
     
  8. HankEr

    HankEr Grahams Jubiläumsapfel

    Dabei seit:
    06.11.07
    Beiträge:
    102
    Na, vielleicht hat ja jemand anderes ein Beispiel für mich. :)
     
  9. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Na gut... Müßte ungefähr so gehen (zu faul zum Testen)
    Code:
    (* Start durch Doppelklick *)
    on run
      tell me to open { choose file }
    end run
    
    (* Start durch drop *)
    on open some_items
      (* einen Parameter erfragen *)
      set parameter to the text returned of ( display dialog "Ein Parameter" default answer "nix" )
      (* einen Button abfragen *)
      set yes_no to the button returned of ( display dialog "Ja oder Nein?" buttons {"Ja", "Nein"} )
      (* eine liste anbieten *)
      set listenwahl to (choose from list {'"a","b","c","d"})
      (* Aufruf *)
      do shell script "/pfad/zum/script -yesno" & yesno & \
        " -param " & (quoted form of parameter) & " " & \
        " -list " & (first item of listenwahl) & " " & \
        (quoted form of (POSIX path of (first item of some_items)))
    end open
    
    Keine Fehlerbehandlung! Keine Abbruchbehandlung! Das mußt Du Dir schon sebst ausbaldowern.

    Das \ nicht so eingeben. Es zeigt nur, daß alles auf eine Zeile soll.

    Aufgerufen würde hier
    /pfad zum script -yesno <Ja|Nein> -param '<eingegebener Text>' -list <a|b|c|d> '<Die gedroppte/gewählte Datei>'
     
  10. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867
    Diese Pashua kriegt man ziemlich fix ausgereizt, aber es ist verdammt schnell für Shell Skripte nutzbar. 10 Minuten drübergelesen, schon prangern da Buttons und viele meiner Skripte für LaTeX kann so sogar meine Freudin nutzen ;) für ihre Studienarbeit.

    Danke :) Das kam genau richtig!
     

Diese Seite empfehlen