Einzelnen Beitrag anzeigen

Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#18

Re: Eigenes Programm elegant ersetzen

  Alt 11. Nov 2008, 20:48
Hm, wenn Deine Anwendung wirklich nur aus einer Datei besteht und Du da nicht exzessiv rumdoktorn willst, dann wäre es am einfachsten Du checkst nach dem Vorhandensein eines Updates und überprüfst dann ob Du Admin Rechte hast. Falls nicht, forderst Du diese an (indem Du Dich selbst mit Administratorrechten neu startest z.B.) bzw. bittest den User Dich als Admin zu starten. Falls Du Admin Rechte hast, kannst Du die Datei direkt ersetzen.

Zu überprüfen ob Du in einem Verzeichnis Schreibrechte hast oder nicht wäre für mich als Pragmatiker relativ einfach:
Ich probier in dem Verzeichnis was zu schreiben*. Wenns klappt, prima. Wenns nicht klappt, hab ich offensichtlich keine Rechte dazu. Da der Administrator aber ohnehin immer Rechte hat (bzw. sie sich besorgen kann), wäre so ein expliziter Check eher nicht notwendig, sofern der Update Code an sich korrektes Fehlerhandling betreibt.

* Das Ganze stimmt so nicht ganz. Windows Vista führt bei aktivierter UAC für sogenannte "Legacy Applications" Dateisystemvirtualisierung durch. Das bedeutet das wenn eine Legacy Application versucht im Programme Ordner zu schreiben, werden die Dateioperationen stattdessen in einen Ordner im Userprofil durchgeführt. Der Check funktioniert bei "Legacy Applications" also nicht. Legacy Applications sind dabei 32bit Anwendungen ohne Manifest bzw. Anwendungen die in der Compatibility Database von Vista explizit als Legacy markiert sind.
Fridolin Walther
  Mit Zitat antworten Zitat