Programm neustarten

  • Programm neustarten

    Hallo.

    Ich bin derzeit dabei, eine Update-Funktion für mein Programm zu schreiben. Ich bin jetzt so weit, dass es meine gezippte .app Datei in den selben Ordner, wo sich auch das Programm befindet, runterlädt (toll, nicht ^^).

    Wie kann ich jetzt am besten anstellen, dass die "alte" .app Datei beim Programmneustart durch die neue .app Datei ersetzt wird.

    Ist AppleScript dafür geeignet oder lässt sich das auch mit Cocoa lösen?
  • Original von Benny_Ben_Ben
    Du meinst ein ganz stinknormales Programm?

    Danke, auf die Idee wär ich gar nicht gekommen.

    Gruß,
    Benny


    naja, ein konsolenprogramm eben nur (also kein icon etc).
    das programm soll starten, dann warten bis das hauptprogramm nicht mehr läuft, dann das alte hauptprogramm in den müll schieben oder löschen, das neue hauptporogramm an seinen platz schieben und starten. Das wars ;)

    GG
  • Also es funktioniert jetzt teilweise.

    Das Problem ist nur, wenn ich von meinem Hilfsprogramm die .app Datei löschen lasse, in der ja auch das Hilfsprogramm drinnen ist, geht es dann natürlich nicht mehr weiter.

    Kann man das ganze Programm irgendwie vorladen, dass es dann ausgeführt wird?
  • schönes beispiel ist doch Microsoft Office:mac,

    hier ist das Update-Programm völlig selbständig.

    Im Programme - Ordner gibt es einmal den Office-Ordner und einmal das Updater-Programm.


    Würde es daher genauso tun:

    Hauptprogramm startet das Update-Programm. Update - Programm prüft, ob das eigentliche Programm läuft und stoppt bis der Anwender das haupte Programm schliesst. Dann lädt das Updateprogramm das neue Programm runter, löscht das bisherige und installiert das neue.
  • @Marcel

    Ja, aber ich find das sehr hässlich, so einen Ordner zu haben, so jetzt unterschiedlich viele Sachen drinnen (irgendwie funktioniert das ja bei anderen Apps auch, die kein Sparkle benutzen).

    Ich werd mal weiter schauen.
    Wenn einer noch eine hilfreiche Antwort, bitte an mich^^
  • Thema gelöst.

    Das Programm (und damit auch die destination des Programmes) werden ja in den Müll geschoben. Also kann dann die neue Datei zb nicht zum dem Pfad [[NSBundle mainBundle] bundlePath] verschieben, weil das ja jetzt nicht mehr dort ist! (gscheit, nicht^^)

    Vielen Dank für die Antworten,
    Benny
  • btw: du musst ja nicht das hilfsprogramm aus deinem alten bundle verwenden sondern zum beispiel das im neuen. Du entpackst das einfach noch im alten programm und startest dann den helper aus dem neuen bundle. Hat auch den vorteil dass du dann an der update-rotine bei einem update was ändern kannst.
  • RE: Programm neustarten

    Du solltest vielleicht noch bedenken, dass einige klevere Anwender nicht ständig als Admin unterwegs sind. Und bei denen schlägt das dann fehl, weil die in der Regel nicht in das Applikationsverzeichniss schreiben können.

    Ehrlich gesagt kenne ich nur einen Unverbeserlichen der sowas überhaupt macht.
    Toller Beitrag. :thumbup:
  • RE: Programm neustarten

    Original von Deckard
    Du solltest vielleicht noch bedenken, dass einige klevere Anwender nicht ständig als Admin unterwegs sind. Und bei denen schlägt das dann fehl, weil die in der Regel nicht in das Applikationsverzeichniss schreiben können.

    Ehrlich gesagt kenne ich nur einen Unverbeserlichen der sowas überhaupt macht.


    dann holt man sich die rechte eben vom user...