Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Update Problem unter Win7 (https://www.delphipraxis.net/148703-update-problem-unter-win7.html)

AlexII 6. Mär 2010 21:09


Update Problem unter Win7
 
Hallo,

Beim Updaten meines Programms wird die exe-Datei durch eine neuere ersetzt, aber wie ich festgestellt habe erlaubt Win7 nicht die vorhandene exe zu ersetzen. Wie führe ich mein Update so durch, dass es klappt bzw. wie überschreibe ich die exe?

Mein Prog liegt im Programme Verzeichnis, also wie üblich.

jfheins 6. Mär 2010 21:12

Re: Update Problem unter Win7
 
Zitat:

Zitat von AlexII
Wie führe ich mein Update so durch, dass es klappt bzw. wie überschreibe ich die exe?

Hast du Admin-Rechte?
Also updater als Administrator ausgeführt?

AlexII 6. Mär 2010 21:16

Re: Update Problem unter Win7
 
Ne du hast falsch verstanden... ich schreibe ein Programm und das Updaten muss bei den Usern klappen.

Luckie 6. Mär 2010 21:20

Re: Update Problem unter Win7
 
Das ist aber gegen die Mircosoft Sicherheitspolitik. Für die Installation und die Updates von Software sind nun mal Administratoren zuständig. Jahre lang hat man sich beschwert, dass XP Rechner Viren verseucht sind, weil der Benutzer standardmäßig Administrator ist und die wenigsten mit eingeschränkten Rechten arbeiten.

AlexII 6. Mär 2010 21:21

Re: Update Problem unter Win7
 
Ja das ist auch gut so, aber wie soll ich dann mein Prog updaten? :gruebel:
Andere Programme können es doch, also es muss eine Lösung geben. Nur welche? :roll:

Luckie 6. Mär 2010 21:23

Re: Update Problem unter Win7
 
Genauso wie es alle Programme machen: Mit Administratorenrechten. Lege deinem Updater ein Manifest bei, welches Administratorenrechte anfordert beim Start.

AlexII 6. Mär 2010 21:24

Re: Update Problem unter Win7
 
Aha... gibt's hier vllt Themen die das behandeln? Welches Stichwort hilft mir?

Luckie 6. Mär 2010 21:27

Re: Update Problem unter Win7
 
Lese dir meinen letzten Beitrag noch mal durch. Um es dir etwas einfacher zu machen, habe ich die entscheidenden Begriffe hervorgehoben.

AlexII 6. Mär 2010 21:33

Re: Update Problem unter Win7
 
Was ist eigentlich Manifest? Eine Komponente, eine Funktion oder ... hm...

jfheins 6. Mär 2010 21:35

Re: Update Problem unter Win7
 
Einfacher Weg: benenne deinen updater so, dass er ein "update" im Nemen hat

Besserer Weg: Lege ein Manifest bei, wie Luckie es gesagt hat. Hier ein paar Links dazu:

http://www.delphipraxis.net/internal...t.php?t=112390

http://technet.microsoft.com/en-us/library/cc709628(WS.10).aspx
http://msdn.microsoft.com/en-us/library/bb756929.aspx

Eion Manifest kann eine extra Datei sein, oder die Datei ist als Resource hinten an die exe "angepappt"

AlexII 6. Mär 2010 21:39

Re: Update Problem unter Win7
 
Einfach eine .xml Datei im Programm Verzeichnis ablegen und fertig? Das klingt irgendwie zu einfach. Muss ich die irgendwie aufrufen oder soll es da einfach liegen? :gruebel:

Luckie 6. Mär 2010 21:40

Re: Update Problem unter Win7
 
Zitat:

Zitat von AlexII
Was ist eigentlich Manifest? Eine Komponente, eine Funktion oder ... hm...

Hmpf. Ich gehe mal davon aus, dass du noch nicht gesucht hast. Aber hast Glück, das hat wohl gerade jemand anders übernommen für dich.

AlexII 6. Mär 2010 21:48

Re: Update Problem unter Win7
 
Kennst vllt jemand ein Tutorial wie man das mit dem Manifest macht? Hab zig Posts gefunden und blicke da überhaupt nicht durch. :roteyes:

Luckie 6. Mär 2010 21:52

Re: Update Problem unter Win7
 
http://www.delphipraxis.net/internal...t.php?t=130450 :roll:

AlexII 6. Mär 2010 22:02

Re: Update Problem unter Win7
 
Zitat:

Zitat von Luckie
http://www.delphipraxis.net/internal_redirect.php?t=130450 :roll:

Oh.. diese wird in weiteren Posts stark kritisiert, gibt's vllt eine andere, eine professionale?

Luckie 6. Mär 2010 22:05

Re: Update Problem unter Win7
 
Wo wird dieses Tutorial stark kritisiert? Es gibt eine Anmerkung, ein zwei Verbesserungsvorschläge und dann wird ein Problem behandelt.

Aber ich habe eine ganz tolle Idee: Probiere es doch einfach mal aus.

Sir Rufo 6. Mär 2010 22:07

Re: Update Problem unter Win7
 
Zitat:

Zitat von AlexII
Zitat:

Zitat von Luckie
http://www.delphipraxis.net/internal_redirect.php?t=130450 :roll:

Oh.. diese wird in weiteren Posts stark kritisiert, gibt's vllt eine andere, eine professionale?

:shock: sach ma ... ist hier noch alles senkrecht?

Da wird einem in dem Thread das Brot vorgekaut, vorher noch nach der Lieblingswurst gefragt, die Tauben fleigen einem gebraten in den Mund ...
und du kommst jetzt mit so einer Aussage?

Aber wenn du beurteilen kannst, dass das schlecht ist, dann such mal etwas besseres.
Hier ist es das Beste (vor allem es funktioniert) ... also such woanders ...

edit: nur so als kleine Gedankenstütze der letzte Eintrag in dem angeblich kritisierten, schlechten Beitrag
Zitat:

Zitat von GPRSNerd
Hi,

Danke für das gute Tutorial und die hilfreichen Anmerkungen im Thread.

Ich starte jetzt zum Setzen von Kontextmenu-Einträgen im Explorer [liegen unter HKEY_CLASSES_ROOT] eine Helper-Applikation mit dem Manifest zur Anfrage von Admin-Rechten.
Funktioniert unter Windows 7 RC einwandfrei.

Danke,
Stefan


AlexII 6. Mär 2010 22:14

Re: Update Problem unter Win7
 
Na ja... ich bin halt vorsichtig... war nicht schlecht gemeint.

Muss ich eigentlich zwei Manifeste haben, für Vista und 7 oder gibt es auch eine für beide BS?

Sir Rufo 6. Mär 2010 22:17

Re: Update Problem unter Win7
 
Zitat:

Zitat von AlexII
Na ja... ich bin halt vorsichtig... war nicht schlecht gemeint.

Muss ich eigentlich zwei Manifeste haben, für Vista und 7 oder gibt es auch eine für beide BS?

Deine Frage beantwortet die Frage von vielen "Liest der eigentlich auch, was man dem so zeigt?"

Der Thread heißt doch ganz klar: "[Vista / UAC] Programm mit Adminrechten starten"

Und ganz zum Schluss schreibt jemand: "Toll, hat geklappt, läuft super unter Win 7"

Vor allem, wenn man nicht lesen kann/will ist es doch nicht zuviel verlangt wenn du eine kleine futzelige Datei
mit minimalem Inhalt (das Manifest) erstellst (ja einfach nur den Inhalt aus der Seite kopieren und in die Datei packen)
und entsprechend benennst.

Dann kannst du es schon testen .. unter Vista und Win 7

Aber das ist wahrscheinlich zu schwer

AlexII 6. Mär 2010 22:22

Re: Update Problem unter Win7
 
Man kann doch nicht alles lesen, hab halt übersehen. Außerdem ich habe kein Vista/7 ... kann nicht testen, deswegen wollte ich auf Nummer sicher gehen.

Sir Rufo 6. Mär 2010 22:25

Re: Update Problem unter Win7
 
Zitat:

Zitat von AlexII
Man kann doch nicht alles lesen, hab halt übersehen. Außerdem ich habe kein Vista/7 ... kann nicht testen, deswegen wollte ich auf Nummer sicher gehen.

Auf der einen Seite willst du nicht alles lesen,
Auf der anderen Seite willst du aber sicher gehen.

Lies alles, dann gehst du auf der sicheren Seite!

AlexII 6. Mär 2010 22:29

Re: Update Problem unter Win7
 
Ich hab hier ein Manifest gefunden, soll von XP bis 7 reichen. Was mich aber irritiert, dass da "win32" steht, läuft das dann auch unter 64 bit BS? Oder sagt das was anderes aus?

Zitat:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="x86" name="meinprog.exe" type="win32"/>
<description>elevate execution level</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
</dependentAssembly>
</dependency>
</assembly>

Sir Rufo 6. Mär 2010 22:32

Re: Update Problem unter Win7
 
Zitat:

Zitat von AlexII
Ich hab hier ein Manifest gefunden, soll von XP bis 7 reichen. Was mich aber irritiert, dass da "win32" steht, läuft das dann auch unter 64 bit BS? Oder sagt das was anderes aus?

Womit programmierst Du?

Delphi? Lazarus?

Was sind deine Programme 32-bit / 64-bit?

Wenn du nur ein 32-bit Programm baust, wofür dann der Hinweis auf 64-bit?

Das Manifest bezieht sich auf dein Programm und das benutzt den 32-bit Teil des Betriebssystems (auch wenn es ein x64 Betriebssystem ist)

AlexII 6. Mär 2010 22:41

Re: Update Problem unter Win7
 
Ok hab kopiert, ich dachte da bezieht sich auf das BS.

Ja ich habe Win32, Delphi7

Danke!

AlexII 7. Mär 2010 09:47

Re: Update Problem unter Win7
 
Hab jetzt das Problem, dass das Prog sich mit Windows nicht automatisch starten lässt. Muss im Manifest ne Zeile hin, die das erlaubt, oder gibt's da ne extra Funktion?

jfheins 7. Mär 2010 10:01

Re: Update Problem unter Win7
 
Nein.

Programme, die Administrator-rechte benötigen können nicht ohne weiteres beim Systemstart ausgeführt werden. (Würde ja auch irritieren, wenn man bei jedem Systemstart ertstmal 2 UAC-Screens bekommt)

"Ohne weiteres" heißt konkret: Mit einem Dienst ginge es, aber ein "normales Programm" wird einfach nicht gestartet wenn es Adminrechte braucht ;)
(Alternativ geht auch die Aufgabenplanung - aber auch dafür braucht man Adminrechte um sich da rein zu schreiben)

Was möchtest du eigentlich erreichen? Soll dein Updater die Dateien runterladen und beim nächsten Systemstart automatisch das Programm updaten? Wenn ja, wäre es ne Überlegung, das Update erst bei der Programmausführung zu starten - dafür braucht man weder nen Dienst noch die Aufgabenplanung. (Btw.: Firefox & Thunderbird machen es genau so)

AlexII 7. Mär 2010 10:12

Re: Update Problem unter Win7
 
Mein Programm braucht Adminrechte um sich updaten zu können. Und Autostart falls der User das möchte oder falls im Programm irgendwelche Termine eingetragen sind, das Prog muss also automatisch starten und im System Tray laufen.

jfheins 7. Mär 2010 10:21

Re: Update Problem unter Win7
 
Dann kann es ja einfach eine Nachricht anzeigen:

Zitat:

Ein Update steht zur Installation bereit. Jetzt installieren?
[Ja] [Nein] [Später erinnern]
:stupid:

AlexII 7. Mär 2010 10:28

Re: Update Problem unter Win7
 
Und danach? :gruebel: Die Adminrechte brauche ich doch sowieso, wenn ein Update installiert werden soll.

jfheins 7. Mär 2010 10:35

Re: Update Problem unter Win7
 
Naja, auf dem Ja-Button ist dann halt so ein süßes Schildchen, und wenn man draufdrückt kommt der UAC-Screen, der Updater wird mit Adminrechten gestartet, der tut dann was immer er tun muss und startet dann wieder die eigentliche Anwendung ;)
Zitat:

Zitat von AlexII
Die Adminrechte brauche ich doch sowieso, wenn ein Update installiert werden soll.

Ja - aber du brauchst sie ja erst genau dann, wenn dasd Update installiert werden soll. Also brauchst du sie auch erst dann anfordern ;)

AlexII 7. Mär 2010 10:42

Re: Update Problem unter Win7
 
Ich hab gelesen, dass man die Rechte wärend das Programm läuft nicht hochstufen kann. Außerdem ist an das Programm ein Manifest gebunden, hm.... irgendwie kopiere ich die Logik nicht... :gruebel:

Wie kann ich den zu Laufzeit die Rechte anfordern bzw. ein Manifest einbinden?

Luckie 7. Mär 2010 10:44

Re: Update Problem unter Win7
 
Du hast dein Programm und ein zweites Programm für die Updates. Der Updater ist mit einem Manifest ausgestattet. Dein eigentliches Programm, guck jetzt, ob Updates vorhanden sind. Sind welche vorhanden, startet es den Updater, der wegen des Manifestes Administratorenrechte anfordert. Jetzt klar?

AlexII 7. Mär 2010 10:47

Re: Update Problem unter Win7
 
Und kann dann der Updater meine Prog.exe überschreiben? :gruebel:

Ich hab bis jetzt nur eine exe, Prog und Updater zusammen.

Luckie 7. Mär 2010 10:50

Re: Update Problem unter Win7
 
Ach so. Eventuell wäre es ganz günstig gewesen, dies man so ganz nebenbei im ersten Posting zu erwähnen. Jetzt verstehe ich auch deine letzte Frage zu dem Manifest zur Laufzeit einbinden.

Nein, mach zwei Programme. Dein Programm startet den Updater und beendet sich, der Update lädt das Update und überschreibt dein Programm und fertig.

AlexII 7. Mär 2010 10:54

Re: Update Problem unter Win7
 
Oh man mein Kopf kocht schon :roteyes:
Hm.... ok ich glaube hab jetzt das alles kopiert... muss mich mal an die Arbeit machen.

Kennt vllt jemand nen gute automatischen Updater? So neben bei die Frage... :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:33 Uhr.

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