Wir haben eine Reihe von Programmen, die beim Start nach neuen Versionen suchen und dann neue Versionen herunterladen, die bei Bedarf ausgeführt werden. Dies ist offensichtlich ein Problem in Windows 7, wenn es als 'Standardbenutzer' gesperrt ist, da sie nicht in das Verzeichnis c: \ program files und darunter schreiben können. Hat jemand ein Beispiel für eine Anwendung gesehen, die sich mit Problemen herumschlägt?
Unsere Anwendungen sind in Delphi geschrieben, aber ein Beispiel in jeder Sprache wäre nützlich.
Vielen Dank im Voraus
Aktualisierung:
Wir haben bereits ein System, um zu bestimmen, ob eine neue Version existiert, das einzige Problem ist das Herunterladen und Installieren (falls erforderlich), da dies eine Erhöhung erfordert. Ich kann mir keinen Weg vorstellen, der keine Aufforderung zur Erhöhung erfordert, oder unsere Benutzer müssen ihre Sicherheitseinstellungen reduzieren.
Update 2:
Ich habe eher eine nachfolgende Frage gestellt als hier ein neues hinzuzufügen
Es gibt zwei Optionen für die Anwendungsinstallation:
Anzeige 2: Google Chrome tut dies. Es installiert die .exe hier:
% LOCALAPPDATA% \ Google \ Chrome \ Anwendung \ chrome.exe
- Jeroen
Normalerweise sehen Sie eine Anwendung, wenn sie Berechtigungen eskalieren muss. Dies ist in etwa so.
Dies ist ein ziemlich häufiges Szenario, insbesondere da Sie Ihre eigene DLL aktualisieren müssen, müssen Sie trotzdem zu einem sekundären Prozess gehen.
Hier finden Sie einige Tipps für die Aktualisierung von Herausforderungen:
Unsere Firma verkauft Software, die speziell mit automatischen Updates auf Windows 7 UAC hilft (Sie können AutoUpdate + besuchen, indem Sie hier klicken: link text ). Die besten Gründe für die Verwendung einer Lösung von Drittanbietern - jede Lösung - ist, dass Sie mehr Flexibilität bei Ihren Aktualisierungen haben und die kniffligen Herausforderungen der Unterstützung verschiedener Windows-Versionen vermeiden.
Oder Sie können es so einrichten, dass der Benutzer eine Startanwendung ausführt.
Ihre App kann prüfen, ob eine neue Version auf dem Remote-Server verfügbar ist. Wenn dies der Fall ist, kann es Update-Dateien in einem der benutzerspezifischen Ordner, wie dem temporären Ordner des Benutzers, herunterladen. Sie können die Adresse solcher speziellen Ordner über die SHGetSpecialFolder API-Funktion erhalten.
Sobald der Download abgeschlossen ist, können Sie ein Dialogfeld öffnen, das dem Benutzer mitteilt, dass Sie für das Update bereit sind. Wenn der Benutzer der Aktualisierung zustimmt, können Sie den Aktualisierungsprozess mit erhöhten Rechten (als Administrator) ausführen, und der Aktualisierungsprozess kann vorhandene Dateien in Ihrem Installationspfad durch diejenigen ersetzen, die bereits im Temp-Ordner des Benutzers heruntergeladen wurden. Um Ihren Updater als Administrator auszuführen, können Sie ShellExecute verwenden:
%Vor%Wenn die Aktualisierung abgeschlossen ist, kann Ihr Aktualisierungsprozess Ihre App neu starten.
Sie müssen eine separate ausführbare Datei für die Aktualisierung haben. Der Updater muss über ein Manifest verfügen, das eine Erhöhung markiert.
Siehe: Ссылка
Wenn Ihre Anwendung MSI (Windows Installer) für ihr Installationsprogramm verwendet, Benutzer Durch die Kontrolle der Kontosteuerung können Sie bei ordnungsgemäßer Konfiguration Aktualisierungen ohne Höhenänderungen installieren.
Wenn Ihr Installer nicht unter admin ausgeführt wurde, benötigen Sie keine zusätzlichen Rechte, um update zu installieren.
Wenn Ihr Installationsprogramm unter admin ausgeführt wurde, kann es eine Aufgabe in Task-Übersicht erstellen. Sagen Sie, führen Sie diese Aufgabe einmal pro Woche unter diesem Account (Admin) und mit den höchsten Rechten aus. Aufgabe wird Ihr Updater sein. Einfach.
Tags und Links windows-7 delphi installation uac privileges