Autor Beitrag
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Di 20.01.09 09:10 
Hallo Leute,

Ich habe selbst einen Updater geschrieben, der bei meinen kleineren Tools, meinen Server kontaktiert und dort nach aktuellen Versionen schaut. Der funktioniert soweit unter Windows XP ganz gut.
Jetzt stehe ich vor dem Problem, dass er unter Vista nicht läuft, weil er natürlich nicht ins Programm Verzeichnis schreiben kann. Da mein Code sowieso recht alt ist, will ich den komplett ne schrieben.

Jetzt meine Frage: Wie mache ich sowas am Besten? Also wie ich das technisch bewerkstellige ist mir schon klar. Mir geht es hier eher ums konzeptionelle. Also so in der Richtung:
- Soll der Updater eher eine eigene EXE sein, oder direkt in die Programme linken? (Ich denke eigene Exe wäre besser, denn die kann ich einfacher mit erweiterten Rechten ausstatten unter Vista)
- Wie ist es am Besten die aktualisierten Dateien zu ersetzen? (Durch Umbenennung im laufenden Betrieb oder gibt es da bessere Methoden)
usw...

Ich hoffe hier kommen ein paar nette, kreative und konstruktive Vorschläge ;-)

Matze

_________________
In the beginning was the word.
And the word was content-type: text/plain.
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Di 20.01.09 09:30 
Schau dir doch mal den Thread von neulich an:
www.delphi-forum.de/viewtopic.php?t=89307

Und wenn deine externer Updater dann auch genau so heißt (*Updater.exe), dann fragt Vista den User nach Adminrechten.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
matze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Di 20.01.09 10:17 
Ganz genau aus diesem Thema heraus wollte ich ja die Diskussion hier mal starten...

_________________
In the beginning was the word.
And the word was content-type: text/plain.
matze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Do 22.01.09 12:08 
Keine Ideen sonst dazu?

_________________
In the beginning was the word.
And the word was content-type: text/plain.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Do 22.01.09 12:13 
Ich würde es so machen wie Opera es macht. Einfach überprüfen ob ein Update da ist und gegebenenfalls Meldung machen. Und das Update selbst muss sich dann der User selbst runterladen und installieren?

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
matze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Fr 23.01.09 09:44 
hmmm.. wäre eine Möglichkeit. Finde ich aber ehrlich gesagt, ein bisschen umständlich. Vor allem, da die Zeilgruppe meiner Anwender echt die Mega DAUs sind...

_________________
In the beginning was the word.
And the word was content-type: text/plain.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 23.01.09 10:37 
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
Ich würde es so machen wie Opera es macht. Einfach überprüfen ob ein Update da ist und gegebenenfalls Meldung machen. Und das Update selbst muss sich dann der User selbst runterladen und installieren?
Das ist das einzige was mich an Opera heftig nervt. ;-)
So wie Chrome finde ich das sehr schön. Der macht das schön im Hintergrund soweit es geht.

user profile iconmatze hat folgendes geschrieben Zum zitierten Posting springen:
- Soll der Updater eher eine eigene EXE sein, oder direkt in die Programme linken? (Ich denke eigene Exe wäre besser, denn die kann ich einfacher mit erweiterten Rechten ausstatten unter Vista)
Eine eigene Exe hat auch den Vorteil, dass die Exe der Anwendung beendet und direkt ersetzt werden kann. Dann ist das...
user profile iconmatze hat folgendes geschrieben Zum zitierten Posting springen:
- Wie ist es am Besten die aktualisierten Dateien zu ersetzen? (Durch Umbenennung im laufenden Betrieb oder gibt es da bessere Methoden)
...gar nicht nötig.

Sollte einmal der Updater selbst aktualisiert werden müssen, dann kann man das Umbenennen benutzen. Dann kann danach der neue Updater gestartet werden und die alte Exe löschen. Wenn es eine neue Version des Updaters gibt, dann wird der ja ohnehin vermutlich als erstes aktualisiert.

user profile iconGTA-Place hat folgendes geschrieben Zum zitierten Posting springen:
Und wenn deine externer Updater dann auch genau so heißt (*Updater.exe), dann fragt Vista den User nach Adminrechten.
Man kann das ja auch nochmal direkt ins Manifest schreiben.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 23.01.09 11:17 
Frag Windows nur nach wenn man Exefiles auf der Windowsplatte ändert? Seltsamer weise ist es nämlich so das Windows bei mir eigentlich nie nachfragt wenn AntiVir sich updated. Aber da werden ja eig. auch nur DLLs ersetzt bzw hinzugefügt.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 23.01.09 11:52 
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
Frag Windows nur nach wenn man Exefiles auf der Windowsplatte ändert? Seltsamer weise ist es nämlich so das Windows bei mir eigentlich nie nachfragt wenn AntiVir sich updated. Aber da werden ja eig. auch nur DLLs ersetzt bzw hinzugefügt.
Das hat damit nichts zu tun, aber der AntiVir-Service hat die Rechte bereits. Ein manuelles Update erfordert eine Bestätigung per UAC, weil das Hauptprogramm diese erstmal nicht hat.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 23.01.09 12:06 
ok, also wäre das wohl keine Option für user profile iconmatze, richtig?

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 23.01.09 12:28 
Genau. Wichtig ist noch, dass man dem Befehl zum Starten des Updaters das Schildsymbol gibt. (Um dem Benutzer die notwendigen Adminrechte anzuzeigen.)
matze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Fr 23.01.09 16:11 
Genau. An das Schildsymbol muss ich auf jeden Fall denken.

Wie macht es denn der AntiVir, dass der gleich die erforderlichen rechte hat? Weil er als Service läuft oder wie? Ich habe dem nicht ganz folgen können...

_________________
In the beginning was the word.
And the word was content-type: text/plain.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 23.01.09 16:28 
user profile iconmatze hat folgendes geschrieben Zum zitierten Posting springen:
Wie macht es denn der AntiVir, dass der gleich die erforderlichen rechte hat? Weil er als Service läuft oder wie? Ich habe dem nicht ganz folgen können...
Ja, so ist es (vermute ich).
Zur Installation des Service sind ja Administratorrechte erforderlich. Danach wird der Dienst nicht mehr mit dem Konto des Benutzers ausgeführt sondern z.B. mit dem Systemkonto. Unter Vista wurde in der Hinsicht ja etwas geändert, aber ich habe kein Vista mit AntiVir drauf, deshalb weiß ich nicht unter welchem Konto und mit welchen Rechten es genau ausgeführt wird.

Auf jeden Fall sind offensichtlich genug Rechte vorhanden um den Updater mit den nötigen Rechten zu starten, denn die Virendefinitionen liegen soweit ich weiß unter c:\programme und nicht in den Anwendungsdaten. Und damit müssen ja erhöhte Rechte vorhanden sein, da die UAC nicht anspringt.

Bei einem manuellen Update springt die UAC an soweit ich weiß. Das Hauptprogramm, aus dem dieses gestartet wird, hat die erforderlichen Rechte nämlich nicht.
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Fr 23.01.09 17:11 
Kenn mich da nicht im Detail damit aus aber evtl. kannst du über COM ein peristentes UAC Access-Token kriegen. Bei der Installation müßte man wohl irgend eine eigene und signierte DLL oder so registrieren.
matze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mo 26.01.09 09:36 
OK. Ihr habt mir schon mal sehr geholfen. Ich werde dann mal schauen, wie ich diesen Updater umsetze :-)
Danke an alle!

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 26.01.09 09:50 
user profile iconmatze hat folgendes geschrieben Zum zitierten Posting springen:
weil er natürlich nicht ins Programm Verzeichnis schreiben kann.

Wenn du unter XP nicht standardmäßig als Administrator arbeiten würdest, was man auchnicht tun sollte, hättest du gemerkt, dass das auch schon unter XP nicht ging. Dein Updater würde bei mir also nicht funktionieren. Hast du da noch nie von jemanden eine Fehlermeldung bekommen?
matze Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mo 26.01.09 14:04 
Jaaaa ok. Erwischt. Ich weiß natürlich, dass es unter XP eigentlich auch nicht gehen sollte.
Allerdings wird der Updater hauptsächlich bei Usern eine Community für deren Offline-Tools eingesetzt. Das sind so um die 700 Menschen, die meinen alten Updater benutzen und ich habe wirklich noch nie eine Fehlermeldung bekommen.
Das zeigt mal wieder, wie die System konfiguriert sind :-D

_________________
In the beginning was the word.
And the word was content-type: text/plain.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mo 26.01.09 14:14 
respekt an die, die sich wirklich dran halten aber mit wäre das auf dauer zu zach immer zu wechseln weil schon wieder n blöde firma das nicht eingehalten hat.

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 26.01.09 16:11 
user profile iconelundril hat folgendes geschrieben Zum zitierten Posting springen:
respekt an die, die sich wirklich dran halten aber mit wäre das auf dauer zu zach immer zu wechseln weil schon wieder n blöde firma das nicht eingehalten hat.

Diese Wortaneinadereihung ergibt für mich keinen Sinn.
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mo 26.01.09 16:13 
Ich übersetze:

user profile iconelundril hat folgendes geschrieben:
Respekt an all jene, die sich daran (eingeschränkte Rechte) halten, aber mir wäre das auf zu Dauer nervig, immer zu wechseln (zwischen Admin und eingeschränktem Nutzer), weil sich schon wieder eine *blöde* Firma nicht an den Standard gehalten hat.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)