Autor Thema: Auto-Updater  (Gelesen 11300 mal)

James_Kullen

  • Besucher
  • *
  • Beiträge: 19
    • Profil anzeigen
Auto-Updater
« am: 23. August 2011, 12:08:56 »
Tag zusammen.

Da mir das manuelle Update in Kombination mit den schnellen Update-Intervallen nicht sehr zugesagt hat, habe ich mir einfach kurz einen Auto-Updater gemacht, der unsichtbar Miranda aktuell hält, und dabei schnell und elegant zu bedienen ist.

Betriebssystem: Win 2000+ (Windows only)
Miranda-Version: Unicode, Stable & Alpha & Beta
Download
Quellcode
Mehr Informationen (Wiki)

Howto:
Downloaden, ins Miranda-Verzeichnis (also in dasselbe wie miranda32.exe) entpacken,
Verknüpfungen auf den Updater ändern.
Bei Klick auf den Updater werden die Versionen überprüft, wenn notwendig geupdatet,
und danach Miranda gestartet.
Ihr werdet den Updater also so gut wie garnicht sehen ;)

Howto (für die PortbleApps-Miranda Version):
Nachtrag:
Die "MirandaUpdater.exe" in den Ordner "Apps" (parallel zur "miranda32.exe" kopieren.
Die "mirandaportable.ini" wie folgt ändern:
[MirandaPortable]
MirandaDirectory=App
ProfilesDirectory=Data
MirandaExecutable=mirandaupdater.exe
AdditionalParameters=
RunLocally=false
DisableSplashScreen=true
Weitere Änderungen sind nicht nötig.
« Letzte Änderung: 17. September 2011, 12:35:25 von James_Kullen »

g-force

  • Überall-Mitmischer
  • *
  • Beiträge: 188
  • Geschlecht: Männlich
  • IM-Infizierter
    • https://www.facebook.com/gunnar.schroeter"
    • https://plus.google.com/u/0/108389710368140245084"
    • Profil anzeigen
Re:Auto-Updater
« Antwort #1 am: 23. August 2011, 14:04:30 »
Der Updater funktioniert bei mir leider nicht.
Es gibt eine Fehlermeldung in "Line 3654 - Subscript used with non-Array variable".
Etwas komisch, denn diese Zeile gibt es ja garnicht im Quellcode.

$atmv = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Miranda IM","DisplayName")Der Registrypfad bezieht sich auf Windows7 - ich nutze XP.
Kann man die Versionsinfo nicht direkt aus der "miranda32.exe" auslesen?

James_Kullen

  • Besucher
  • *
  • Beiträge: 19
    • Profil anzeigen
Re:Auto-Updater
« Antwort #2 am: 23. August 2011, 15:10:52 »
Doch, kann man  :P

/edit:
Ok, erledigt.
Probiers jetzt bitte erneut (natürlich musst du die neue Version downloaden) :)

Der Fehler kommt übrigens aus dem Include -
da durch den nicht-existenten String auch kein Ergebnis gefunden wird.
« Letzte Änderung: 24. August 2011, 12:02:20 von James_Kullen »

g-force

  • Überall-Mitmischer
  • *
  • Beiträge: 188
  • Geschlecht: Männlich
  • IM-Infizierter
    • https://www.facebook.com/gunnar.schroeter"
    • https://plus.google.com/u/0/108389710368140245084"
    • Profil anzeigen
Re:Auto-Updater
« Antwort #3 am: 24. August 2011, 11:41:30 »
Okay, der erste Fehler ist beseitigt.
Nun habe ich aber Miranda installiert in "C:\Programme\Miranda" (ohne "IM").
Der Updater liest korrekt die Version aus, die anschließende Installation der aktuellen Build
geht aber nach "C:\Programme\Miranda IM" - also in den Standardpfad. Dies ist sicher damit
begründet, daß AutoIt durch die Standardeinstellungen des Miranda-Installers klickt.
Bei portabler Nutzung von Miranda wird vermutlich derselbe Fehler passieren.
Der Pfad der "miranda32.exe" gibt ja den tatsächlichen (Installations-)Pfad an,
ebenso der Pfad der "MirandaUpdater.exe". Ich empfehle das Setzen einer Variable für den Pfad.

James_Kullen

  • Besucher
  • *
  • Beiträge: 19
    • Profil anzeigen
Re:Auto-Updater
« Antwort #4 am: 24. August 2011, 11:47:27 »
Ja, es wird die Standarteinstellung des Installer's genommen.
Das hat damit zu tun, dass zumindest bei mir der Installer immer als default
den Pfad zum Miranda-Ordner drinne hat.
Ich habe auch den Pfad geändert, und bei mir wird der geänderte Pfad immer sofort gesetzt,
daher war ich davon ausgegangen, dass das bei allen so ist.

Wenn das so nicht möglich ist, muss ich das halt manuell setzen und dabei den Ordner des Updaters angeben.
Kein Problem, Quellcode & Download update ich in den nächsten 5 Minuten :)

//edit:
Erledigt, bitte erneut testen.
Ich seh schon, mit sovielen Idiotenfehlern mach ich mich hier voll lächerlich  ;D
« Letzte Änderung: 24. August 2011, 11:54:48 von James_Kullen »

g-force

  • Überall-Mitmischer
  • *
  • Beiträge: 188
  • Geschlecht: Männlich
  • IM-Infizierter
    • https://www.facebook.com/gunnar.schroeter"
    • https://plus.google.com/u/0/108389710368140245084"
    • Profil anzeigen
Re:Auto-Updater
« Antwort #5 am: 24. August 2011, 11:59:43 »
Der Installer liest seine Info wohl aus der Registry aus:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\miranda32.exe]
@="C:\\PROGS\\Miranda IM\\miranda32.exe"
"Path"="C:\\PROGS\\Miranda IM"
Diesen Wert habe ich seit der automatischen Installation in der Registry.
Meist benutze ich aber die ZIP-Version, die vermutlich keine Reg-Eintrag setzt.

James_Kullen

  • Besucher
  • *
  • Beiträge: 19
    • Profil anzeigen
Re:Auto-Updater
« Antwort #6 am: 24. August 2011, 12:01:42 »
Ok, dann ist der Fehler soweit klar :)

Funktioniert die neue Version denn auch bei dir?

g-force

  • Überall-Mitmischer
  • *
  • Beiträge: 188
  • Geschlecht: Männlich
  • IM-Infizierter
    • https://www.facebook.com/gunnar.schroeter"
    • https://plus.google.com/u/0/108389710368140245084"
    • Profil anzeigen
Re:Auto-Updater
« Antwort #7 am: 24. August 2011, 12:12:19 »
Wir finden gemeinsam alle Fehler - läuft doch gut!
Ein letzter Fehler, vermutlich in Zeile 39: "ShellExecute("miranda32.exe")"
Wenn ich den Updater in ein portables Miranda einbaue, wird mit diese Zeile
nicht die "miranda32.exe" im portablen Pfad gestartet, sondern die "miranda32.exe"
im Installationspfad "C:\Programme\Miranda IM" - das Script bleibt also nicht im Ordner.

James_Kullen

  • Besucher
  • *
  • Beiträge: 19
    • Profil anzeigen
Re:Auto-Updater
« Antwort #8 am: 24. August 2011, 12:32:24 »
Eigentlich wird damit, wie du anhand der fehlenden Pfade sehen kannst,
die "miranda32.exe" im aktuellen Arbeitsverzeichnis, also dem des Updaters, gestartet.

Bist du dir denn sicher, dass du den richtigen Updater ausgeführt hast ?

//edit:
Kannst ja mal die neue Version probieren,
habe explizit das SKriptverzeichnis als Pfad zur miranda32.exe gesetzt...
« Letzte Änderung: 24. August 2011, 12:50:45 von James_Kullen »

g-force

  • Überall-Mitmischer
  • *
  • Beiträge: 188
  • Geschlecht: Männlich
  • IM-Infizierter
    • https://www.facebook.com/gunnar.schroeter"
    • https://plus.google.com/u/0/108389710368140245084"
    • Profil anzeigen
Re:Auto-Updater
« Antwort #9 am: 24. August 2011, 13:06:44 »
Zunächst die guten Nachrichten. Der Updater funktioniert bei:
1. einer Standard-Inbstallation von Miranda IM
2. einer Installation mit geänderten Pfaden
3. einer Verwendung der ZIP-Version mit angepassten Pfaden
4. einer portablen Version (Löschen der "mirandaboot.ini", Ordner "profiles" im Programmordner)

Bei einer portable Version von "PortableApps": http://portableapps.com/apps/internet/miranda_portable
sieht die Situation etwas anders aus, da die Struktur anders ist. Miranda wird in 2 Ordner aufgeteilt.
"App" enthält das Programm, "Data" die Profile. Durch die "mirandaportable.ini" werden sowohl diese
Pfade als auch die zu startende EXE bestimmt. Durch Ändern der auszuführenden EXE von "miranda32.exe"
auf die "MirandaUpdater.exe" wird nun zwar der Updater gestartet - aber der Updater startet den falschen Miranda.
Ich habe das Script in Zeile 39 so verändert: "ShellExecute("miranda32.exe",@ScriptDir)".
Dadurch bleibt das Script zwar im Ordner und startet die richtige "miranda32.exe" - nun wird aber das Profil
in "Data" nicht mehr berücksichtigt, sondern ein Profil im Programmordner in "profiles" gesucht.


James_Kullen

  • Besucher
  • *
  • Beiträge: 19
    • Profil anzeigen
Re:Auto-Updater
« Antwort #10 am: 24. August 2011, 13:15:21 »
Das ist doch schonmal gut :)

Ich hatte meine Version, wie du in meinem Edit sehen kannst,
schon angepasst, so dass die im selben Verzeichnis befindliche miranda32.exe ausgeführt wird.
Neuer Download und testen ;)

Ich hatte es btw per "@ScriptDir & "\miranda32.exe" gemacht, das Ergebnis sollte aber dasselbe sein.

g-force

  • Überall-Mitmischer
  • *
  • Beiträge: 188
  • Geschlecht: Männlich
  • IM-Infizierter
    • https://www.facebook.com/gunnar.schroeter"
    • https://plus.google.com/u/0/108389710368140245084"
    • Profil anzeigen
Re:Auto-Updater
« Antwort #11 am: 24. August 2011, 13:29:02 »
Ich hatte mir die "MirandaUpdater.exe" selber mit AutoIt kompiliert, werde deine Version aber auch testen.
Erstmal vielen Dank für deine Mühe und Engagement, denn das Teil ist (nun) echt brauchbar!

Der letzte Fehler, der in der PortableApps-Version auftritt, liegt wohl daran, daß die "miranda32.exe"
nun nicht mehr direkt von der "MirandaPortable.exe" gestartet wird, sondern vom Updater.
Dadurch gehen wohl Startparameter verloren - der Fehler liegt also nicht wirklich beim Updater.
Ich suche mal nach einer Lösung, muß mich dafür aber erst mit der "MirandaPortable.exe" beschäftigen.

g-force

  • Überall-Mitmischer
  • *
  • Beiträge: 188
  • Geschlecht: Männlich
  • IM-Infizierter
    • https://www.facebook.com/gunnar.schroeter"
    • https://plus.google.com/u/0/108389710368140245084"
    • Profil anzeigen
Re:Auto-Updater
« Antwort #12 am: 24. August 2011, 14:19:01 »
Nachtrag:
Die Verwendung im PortableApps-Miranda funktioniert nun ohne Probleme.
Die "MirandaUpdater.exe" in den Ordner "Apps" (parallel zur "miranda32.exe") kopieren.
Die "mirandaportable.ini" wie folgt ändern:
[MirandaPortable]
MirandaDirectory=App
ProfilesDirectory=Data
MirandaExecutable=mirandaupdater.exe
AdditionalParameters=
RunLocally=false
DisableSplashScreen=true
Weitere Änderungen sind nicht nötig.
« Letzte Änderung: 26. August 2011, 18:08:35 von g-force »

James_Kullen

  • Besucher
  • *
  • Beiträge: 19
    • Profil anzeigen
Re:Auto-Updater
« Antwort #13 am: 24. August 2011, 14:21:56 »
Danke für deine tatkräftige Unterstützung,
ich zitiere das Tutorial mal im Startpost, damit die Übersichtlichkeit vorhanden bleibt :)

g-force

  • Überall-Mitmischer
  • *
  • Beiträge: 188
  • Geschlecht: Männlich
  • IM-Infizierter
    • https://www.facebook.com/gunnar.schroeter"
    • https://plus.google.com/u/0/108389710368140245084"
    • Profil anzeigen
Re:Auto-Updater
« Antwort #14 am: 24. August 2011, 14:33:19 »
Gerne doch! Eine gute Idee muß auch unterstützt werden!
Pflege noch den Hinweis ein, daß immer die aktuelle Stable geladen wird,
auch eine installierte Alpha/Beta wird upgedated, also überschrieben.

James_Kullen

  • Besucher
  • *
  • Beiträge: 19
    • Profil anzeigen
Re:Auto-Updater
« Antwort #15 am: 24. August 2011, 20:46:26 »
Erledigt, sollte so, trotz kleines Hinweises, recht eindeutig sein.

Wishmaster

  • FREAK_THEMIGHTY
  • Globaler Moderator
  • **
  • Beiträge: 4.628
  • Geschlecht: Männlich
  • Wahnsinniger
    • Profil anzeigen
Re:Auto-Updater
« Antwort #16 am: 26. August 2011, 15:59:14 »
Hinweis: Es wäre evtl sinniger, die aktuelle version von http://update.miranda-im.org/update.xml abzurufen (das nutzt Miranda IM auch intern), so hat man stets auch die aktuellen Links. :)
Ashes to ashes, dust to dust.

progandy

  • Plugin-Autor
  • Akkordschreiber
  • ***
  • Beiträge: 626
    • progandy@hot-chilli.net"
    • http://progandy.miranda-vi.org"
    • Profil anzeigen
    • ProgAndy
Re:Auto-Updater
« Antwort #17 am: 26. August 2011, 17:42:27 »
Hinweis: Es wäre evtl sinniger, die aktuelle version von http://update.miranda-im.org/update.xml abzurufen (das nutzt Miranda IM auch intern), so hat man stets auch die aktuellen Links. :)
Dann muss ich vielleicht doch mal meinen Updater fertigstellen. Der ist bisher beim Auslesen der Version stehengeblieben ;)
Jetzt wo ich weiss wie es funktioniert versteh ich auch die Gebrauchsanleitung
[Status: Jabber]

g-force

  • Überall-Mitmischer
  • *
  • Beiträge: 188
  • Geschlecht: Männlich
  • IM-Infizierter
    • https://www.facebook.com/gunnar.schroeter"
    • https://plus.google.com/u/0/108389710368140245084"
    • Profil anzeigen
Re:Auto-Updater
« Antwort #18 am: 29. August 2011, 12:10:58 »
Feedback:
Das letzte Miranda-Update wurde vom Updater sofort nach Veröffentlichung erkannt
und ohne Probleme in den richtigen Ordner installiert (bei mir ja Portable).
Das Programm ist also zu 100% lauffähig und nutzbar.  :) :) :)

g-force

  • Überall-Mitmischer
  • *
  • Beiträge: 188
  • Geschlecht: Männlich
  • IM-Infizierter
    • https://www.facebook.com/gunnar.schroeter"
    • https://plus.google.com/u/0/108389710368140245084"
    • Profil anzeigen
Re:Auto-Updater
« Antwort #19 am: 30. August 2011, 22:14:06 »
Wie kann ich den Auto-Updater für die Alpha-Version anpassen?
Es müssen ja einige Zeilen im Code (Links) angepasst werden, nehme ich an.

http://www.miranda-im.org/2011/06/22/miranda-im-v0-10-0-alpha-build-2/

progandy

  • Plugin-Autor
  • Akkordschreiber
  • ***
  • Beiträge: 626
    • progandy@hot-chilli.net"
    • http://progandy.miranda-vi.org"
    • Profil anzeigen
    • ProgAndy
Re:Auto-Updater
« Antwort #20 am: 30. August 2011, 22:57:27 »
Wie kann ich den Auto-Updater für die Alpha-Version anpassen?
Es müssen ja einige Zeilen im Code (Links) angepasst werden, nehme ich an.

http://www.miranda-im.org/2011/06/22/miranda-im-v0-10-0-alpha-build-2/
Du kannst ja mal meinen ausprobieren, der ist aber ungetestet weil ich lieber selbst kompiliere ;)
Theoretisch sollten Alpha, Beta, Stable, Unicode, x64 und manuell auch ANSI inkl. Contrib unterstützt werden.
MirandaUpdate.zip
« Letzte Änderung: 30. August 2011, 23:00:08 von progandy »
Jetzt wo ich weiss wie es funktioniert versteh ich auch die Gebrauchsanleitung
[Status: Jabber]

g-force

  • Überall-Mitmischer
  • *
  • Beiträge: 188
  • Geschlecht: Männlich
  • IM-Infizierter
    • https://www.facebook.com/gunnar.schroeter"
    • https://plus.google.com/u/0/108389710368140245084"
    • Profil anzeigen
Re:Auto-Updater
« Antwort #21 am: 01. September 2011, 04:28:00 »
Respekt, mein Lieber - großes Kino!
Graphische Oberfläche, fragt, was man(n) will - supi.
Findet meinen MIM sogar in "ungewöhnlichen" Pfaden - alle Achtung!

*ThumbsUp*

James_Kullen

  • Besucher
  • *
  • Beiträge: 19
    • Profil anzeigen
Re:Auto-Updater
« Antwort #22 am: 05. September 2011, 17:34:56 »
Es funktioniert halt von der Funktionsweise grundlegend anders als mein Updater,
der halt unsichtbar und von selber funktionieren soll.

Du magst mir aber nicht evtl die Stelle zeigen,
wie du Miranda auf seine Version (ansi, unicode, 64bit, 86bit) prüfst...

Eine Lösung für Alpha & Beta habe ich bereits...

progandy

  • Plugin-Autor
  • Akkordschreiber
  • ***
  • Beiträge: 626
    • progandy@hot-chilli.net"
    • http://progandy.miranda-vi.org"
    • Profil anzeigen
    • ProgAndy
Re:Auto-Updater
« Antwort #23 am: 05. September 2011, 21:53:43 »
Du magst mir aber nicht evtl die Stelle zeigen,
wie du Miranda auf seine Version (ansi, unicode, 64bit, 86bit) prüfst...
ANSI kann man nicht prüfen, das muss manuell angegeben werden. x64 kann aber erkannt werden:
Local $sMirandaArch = 'unicode'
; Funktion in WinAPIEx: www.autoitscript.com/forum/topic/98712-winapiex-udf/
Local $iTemp = _WinAPI_GetBinaryType($sMirandaPath & $sMirandaExe)
Switch @extended
Case $SCS_32BIT_BINARY ; Oder nicht existent
If $VERWENDE_ANSI Then
$sMirandaArch = 'ansi'
_Log("ACHTUNG: ANSI-Version ist aktiviert (nur für Windows 98, ME und älter empfohlen!)")
EndIf
If Not $iTemp Then _Log("Kein Miranda gefunden, nehme portable Neuinstallation (32bit) an.")
Case $SCS_64BIT_BINARY
$sMirandaArch = 'x64'
EndSwitch
Jetzt wo ich weiss wie es funktioniert versteh ich auch die Gebrauchsanleitung
[Status: Jabber]

James_Kullen

  • Besucher
  • *
  • Beiträge: 19
    • Profil anzeigen
Re:Auto-Updater
« Antwort #24 am: 06. September 2011, 14:22:33 »
Danke soweit :)

Habe ein paar Fortschritte gemacht,
habe allerdings jetzt das Problem,
dass bei einem Update die komplette Konfiguration gelöscht wird.

Was darf ich denn alles NICHT überschreiben,
damit weder die Accounts, History oder die Pluginkonfigurationen gelöscht werden?