1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Aufwand für Cocoa Anwendung mit Menubaricon

Dieses Thema im Forum "AppleScript" wurde erstellt von Binary, 09.10.09.

  1. Binary

    Binary Ontario

    Dabei seit:
    27.07.08
    Beiträge:
    340
    Hallo ihr,

    ich studiere Wirtschaftsinformatik und habe nun schon einige Erfahrungen in Java und Delphi.
    Nun würde ich gerne eine kleine App schreiben, die ein icon in der Menüleiste anzeigt und dessen Menüeinträge Terminal Befehle ausführen.

    Das wäre ein ganz guter Anfang und somit könnte ich einige Dinge realisieren.

    Gibt es da vielleicht so was wie Rohlinge, die man dann zurecht bearbeiten kann und wie hoch würdet ihr den Zeitaufwand dafür schätzen?

    Besten Gruß und Dank

    Binary
    PS:Sorry, hoffe meine Fragen sind nicht all zu blöd.
     
  2. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Binary gefällt das.
  3. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    16.10.05
    Beiträge:
    3.374
    Ich kann dir zwar nicht direkt helfen, aber aus Erfahrung weiss ich, dass es immer doppelt so lange dauert und doppelt soviel Aufwand ist, wie man sich das vorher vorgestellt hat.
     
  4. Binary

    Binary Ontario

    Dabei seit:
    27.07.08
    Beiträge:
    340
    Danke für eure Tipps.
    Ich würde es ja generell gerne lernen nur würde ich mich halt sehr über einen kickstart freuen.
    Wenn ich erstmal das icon hab und darüber terminale befehle ausführen kann dann kann ich immer noch das finetuning machen und von da aus ansetzen.

    Was meint ihr, wie lange braucht man ca. um da rein zu kommen?
     
  5. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    16.10.05
    Beiträge:
    3.374
    Versteh ich das richtig? Du willst von der Menueleiste aus Terminalbefehle ausfuehren?!
    Schonmal an Services gedacht und das dann per AppleScript zu loesen?
     
  6. Binary

    Binary Ontario

    Dabei seit:
    27.07.08
    Beiträge:
    340
    ähm ka vielleicht habe ich mich missverständlich ausgedrückt oder habe einfach ka in den Bereich oder beides ;)

    Und zwar würde ich z.B. gerne folgendes realisieren.
    Über ein Icon in der Menüleiste auf den Time Machine -> Sleep klicken, dies sollte dann bewirken, dass zuerst dieser:
    /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper &
    danach dieser:
    osascript -e 'tell application "System Events" to sleep'
    Befehl ausgeführt wird.
    Per Terminal klappt das, nur habe ich da auch keine Ahnung wie ich das in einen Befehl eingeben kann, so dass nach Ausführung des ersten, der 2.Befehl ausgeführt wird.

    Wie würdest du es empfehlen? Ein AppleScript schreiben und dieses dann anstoßen?
    Was du bzgl. den Services meinst, stehe ich komplett auf den Schlauch.
    Ich möchte ja keinen Dienst schreiben, der die ganze Zeit im Hintergrund läuft oder wie meinst du das?

    Gruß und Dank
    Binary
     
  7. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    16.10.05
    Beiträge:
    3.374
    Dafuer braucht man sich wirklich nicht in Cocoa einarbeiten.

    Den angehaengten Workflow nach /Library/Services schieben und dann aus dem Services Menue heraus ausrufen.

    ACHTUNG: UNGETESTET!

    Hab hier gerade kein Timemachine und nur mal kurz das Zeug zusammengeschrieben. Dauert ja nicht lange...
     

    Anhänge:

  8. Binary

    Binary Ontario

    Dabei seit:
    27.07.08
    Beiträge:
    340
    Hey,

    besten Dank!

    Wenn ich nun sowas trotzdem gerne durch ein programm, welches dies durch eine auswahl in einem icon darstellen lässt realisieren möchte, weil ich würde gerne so eine art toolbox schreiben, die ich dann der Allgemeinheit zur Verfügung stellen würde.

    Quasi das was meiner Meinung nach fehlt. Sollte ich das dann trotzdem als Applescript oder gar als Dienst schreiben und kann es dann in das Programm einbinden oder dann direkt in cocoa?

    Sorry, hoffe ich gehe dir nicht so langsam auf die nerven mit meiner Fragerei.
    Möchte cocoa wie gesagt ohne hin komplett lernen. Nur ein kickstart wäre geil.
    Hab auch schon tutorials gefunden usw.

    Besten Gruß

    Kian
     
  9. Zettt

    Zettt Doppelter Melonenapfel

    Dabei seit:
    16.10.05
    Beiträge:
    3.374
    Wenn du doch neu bist in Cocoa dann wuerde ich anders anfangen.
    Mach dir doch ne Klick App erstmal. Ein Button wo bisschen Text draufsteht und wenn man diesen drueckt macht er eben "Backup & Schlafen". Warum eine App schreiben, welche gleich mal in der Menubar laeuft wenn du noch nicht mal sonst irgendwie was probiert hast.
    Der Umgang mit NSTask und NSPipe wird dir dann genug schlaflose Momente machen.
    Die von dir beschriebenen Aufgaben sind sicher auch pur in Cocoa zu loesen. Zumindest das "Backup anstubsen" geht sicher irgendwie auch ohne einen Terminalbefehl ausfuehren zu muessen. Eventuell gibt es da ja sogar schon eine API fuer. Falls nicht kann man nachschauen ob das nicht auch ueber AppleScript zu loesen geht. Vielleicht gibt es da ja dann eine passende API. Irgendwie sowas wie:

    Code:
    tell application "Time Machine"
    	backup
    end tell
    Finde ich irgendwie netter (und ist wahrscheinlich auch schon viel besser abge-if't nach aussen) als

    Code:
    /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper &
    Allerdings kenne ich mich zu wenig in den Time Machine APIs aus um das zu wissen.

    Also mein Vorschlag ist:

    • Versuch doch erstmal eine App mit Buttons die ein AppleScript aus Cocoa aufrufen.
    • Danach mach dich daran die AppleScripte durch Cocoa Äquivalente zu ersetzen. (NSTask, NSPipe)

    Diese App zu einem Service machen wuerde ich nicht. Das widerspricht dem App Konzept wie das Apple sieht -- vermute ich. Eine .app kann Dienste anbieten. Richtig alleinige Dienste sind Dienste die sich auf Text, Dateien, Ordner usw. beziehen. Deine Anwendung bringt aber "Funktionalitaet", die die eines Service' uebersteigen.

    Und noch ein ganz dringender Rat, ich habe ihn hier zwar schon erwaehnt, aber ich moechte ihn doch nochmal von mir geben, suche erstmal ob es nicht schon vorhandene APIs gibt, welche die Funktionen ausfuehren die du haben moechtest! Also etwas wie "Mach Backup" koennte ja irgendwo durchaus aufrufbar sein. Genauso wie "Schlaf ein".
     
    Binary gefällt das.
  10. Binary

    Binary Ontario

    Dabei seit:
    27.07.08
    Beiträge:
    340
    Besten Dank! Werde mich dann mal ran machen wenn wieder was Zeit da ist.
     
  11. palt

    palt Jonagold

    Dabei seit:
    17.09.09
    Beiträge:
    22
    Also ich hab sowas ähnliches gerade erstellt, ein Cocoa-App das mit Hilfe von Applescript Befehle ausführt. Da ich vorher noch nichts mit Objective-C / Cocoa und Applescript am Hut hatte, war die Einarbeitung nicht ganz so leicht. Aber nach meinem 26h-Marathon hab ichs jetzt ganz gut unter Kontrolle ;)

    Ich würde, je nach Kenntnisstand und Frustrations-Fähigkeiten 1-3 Tage einplanen, bis Du zumindest die Basics drauf hast, der Rest ergibt sich dann wie von alleine.

    Aber gerade die Syntax verwirrt einen am Anfang ordentlich. Bis man den Code lesen kann vergeht einige Zeit (komme selbst aus der Java, PHP, Delphi Ecke).

    Viel Erfolg auf jeden Fall!
     

Diese Seite empfehlen