Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   eigene Anwendung updaten ab W7 (https://www.delphipraxis.net/187353-eigene-anwendung-updaten-ab-w7.html)

Marco Steinebach 21. Nov 2015 09:46

eigene Anwendung updaten ab W7
 
Hallo zusammen,
mein eigenes Programm soll sich updaten können.
Vorgehensweise:
1. im LAN schauen, ob es eine neue Version gibt
2. falls ja, die neue exe ins programm-Verzeichnis kopieren (anderer Name)
3. laufende exe umbenennen
4. kopierte exe in original.exe umbenennen
5. Meldung ausgeben, und Programm beenden.

Funktioniert ohne Probleme, so lange man nicht unter Programme (x86) speichert.
Das man da nicht schreiben darf ist klar, aber es kann doch nicht sein, daß ich mein Prog unter sagen wir
c:\meinProg
installieren muß, damit das geht?
Und ich kann ja nicht, faaaalls es ein Update gibt, das Programm jedesmal per manifest als Admin starten,...

Ich bitte um einen Tip, wo's hier lang geht.
Viele Grüße
Marco

Bernhard Geyer 21. Nov 2015 09:52

AW: eigene Anwendung updaten ab W7
 
Wir verwenden für das Update ein eigenen Installer der (wenn UAC nötig ist damit gestartet wird) der die entsprechenden Dateien austauscht.
Manche lassen einen Updatedienst laufen um das UAC-Problem zu umgehen. Aber Extra-Dienst hat soch seine Probleme.


Dein Vorgehen bei laufenden Betrieb die Exe umzubenennen ist es sehr fragiles. Das Verhalten von Windows hat sich über die Jahre an dieser stelle schon öfter geändert das das umbenennen ging, dann Jahrelang nicht, dann nur scheinbar (Explorer hat Datei nicht mehr angezeigt bis man F5 gedrückt hat) und jetzt geht es wieder. Könnte mit dem nächsten Update wieder anders sein.

Uwe Raabe 21. Nov 2015 11:16

AW: eigene Anwendung updaten ab W7
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1322090)
Wir verwenden für das Update ein eigenen Installer der (wenn UAC nötig ist damit gestartet wird) der die entsprechenden Dateien austauscht.

Das ist auch in der TMS-Komponente TWebUpdate so implementiert. Funktioniert schon geraume Zeit sehr zuverlässig. Wenn man fragt, bekommt man von Bruno auch die Sourcen des Updaters, um den z.B. mit dem eigenen Zertifikat zu signieren.

Luckie 21. Nov 2015 14:19

AW: eigene Anwendung updaten ab W7
 
Zitat:

Zitat von Marco Steinebach (Beitrag 1322088)
Und ich kann ja nicht, faaaalls es ein Update gibt, das Programm jedesmal per manifest als Admin starten,...

Doch genauso ist es. Sonst hätte das Rechtesystem ja keinen Sinn. Oder hast du schon mal ein Programm gesehen, welches sich ohne Admin-Rechte aktualisieren lässt?

Marco Steinebach 10. Dez 2015 14:12

AW: eigene Anwendung updaten ab W7
 
Hallo zusammen,
erstmal ganz herzlichen Dank für eure Antworten.
Jetzt gibt's ein eigenes Programm, das sich UAC holt, und die Dateien austauschen, ..., sollte.
Die für das Update notwendigen Dateien liegen auf einem verbundenen Netzwerklaufwerk. Das Ursprungsprogramm kann ohne Probleme dran, der Updater, der mit Admin-Rechten gestartet wird, findet, bei völlig gleichem Quellcode, keine Dateien.
Häää?
Hat jemand 'nen Tip für mich, warum das so ist?
Bin ich evtl. nicht der gleiche Benutzer wie ohne Admin-Rechte?
Viele Grüße
Marco

Bernhard Geyer 10. Dez 2015 14:29

AW: eigene Anwendung updaten ab W7
 
Zitat:

Zitat von Marco Steinebach (Beitrag 1323985)
Hallo zusammen,
erstmal ganz herzlichen Dank für eure Antworten.
Jetzt gibt's ein eigenes Programm, das sich UAC holt, und die Dateien austauschen, ..., sollte.
Die für das Update notwendigen Dateien liegen auf einem verbundenen Netzwerklaufwerk. Das Ursprungsprogramm kann ohne Probleme dran, der Updater, der mit Admin-Rechten gestartet wird, findet, bei völlig gleichem Quellcode, keine Dateien.
Häää?
Hat jemand 'nen Tip für mich, warum das so ist?
Bin ich evtl. nicht der gleiche Benutzer wie ohne Admin-Rechte?

Zur letzten Frage: YO. So ist das.
Problem ist das dieser UAC-Gestarteter User keine verbundenen Netzwerklaufwerk hat.
Du musst also alle Dateien erste lokal kopieren (wir verwenden hier C:\ProgramData\xxx) und dann von dort in dein Anwendungsverzeichnis kopieren.
Das Tempverzeichnis wäre schlecht da diese ja auch wieder unterschiedlich sein kann/ist.

Marco Steinebach 10. Dez 2015 14:33

AW: eigene Anwendung updaten ab W7
 
Hallo Bernhard,
herzlichen Dank für die Antwort.
Meine Fresse, komplizierter ging's nicht, wa?
Also gut, dann mach ich's genau so.
Dank dir und viele Grüße
Marco

Dalai 10. Dez 2015 14:38

AW: eigene Anwendung updaten ab W7
 
Zitat:

Zitat von Marco Steinebach (Beitrag 1323985)
Hat jemand 'nen Tip für mich, warum das so ist?

Netzlaufwerke sind seit Win2k nutzerspezifisch. Genau genommen sind sie an ein Token gebunden. Daher fällt die UAC da mit rein, weil der Nutzer dadurch ein anderes Token hat. Deswegen müsstest du Netzlaufwerke entweder erneut verbinden oder die benötigten Dateien vorher auf einen lokalen Datenträger kopieren. [ADD] Alternativ kannst du auch mit UNC-Pfaden arbeiten. [/ADD]

MfG Dalai

Bernhard Geyer 10. Dez 2015 14:58

AW: eigene Anwendung updaten ab W7
 
Zitat:

Zitat von Marco Steinebach (Beitrag 1323991)
Meine Fresse, komplizierter ging's nicht, wa?

Wieso kompliziert? Willst du das jeder Prozess (auch Dienstprozesse zugriff auf deine Netzlaufwerke haben)?
Windows hat nunmal ein Rechtekonzept. Und mit dem muss man sich auseinander setzen. Unter Linux hättest du vermutlich vom Prinzip her das gleiche Problem.

Guido R. 10. Dez 2015 15:10

AW: eigene Anwendung updaten ab W7
 
Für den Netzlaufwerks-Zugriff mit Admin-Rechten kannst Du auch einen Schlüssel in der Registry ändern :

Dazu in
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Policies\System
einen neuen DWORD-Wert
EnableLinkedConnections
anlegen und den Wert 1 zuweisen.

Das müsste dann aber an jedem PC gemacht werden, der auf die Updatequelle zugreifen können soll.
(Ließe sich in einer Domäne ggf. über die GPO verteilen :gruebel:)

Gruß
Guido R.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:34 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz