Einzelnen Beitrag anzeigen

dimholz

Registriert seit: 2. Jun 2009
9 Beiträge
 
#1

Adminrechte nur verlangen, wenn benötigt.

  Alt 18. Jul 2009, 15:04
Hi,
ich habe folgendes Problem:

Mein Updater soll erkennen, ob er zum Schreiben in den eigenen Ordner Adminrechte benötigt (z.B. wenn er in C:\Programme liegt).

Ich dachte mir am Anfang, dass ich es so realisieren könnte, dass das Programm versucht eine Testdatei im Hauptordner zu erstellen und dann prüft, ob diese denn auch vorhanden ist.
Nur leider schiebt Vista/7 diese Datei ohne Adminrechte in einen virtuellen Ordner und das Programm gibt immer aus, dass die Datei existiert - egal ob es nun im echten Ordner liegt oder nicht.

Delphi-Quellcode:
needuac:=true;
copyfile(pchar(application.exename),pchar(application.exename+'.bak'),false);
showmessage(application.exename+'.bak');
if fileexists(application.exename+'.bak') then begin
  deletefile(application.exename+'.bak');
  needuac:=false;
end;
Deswegen meine Frage an euch: Wie kann ich überprüfen lassen, ob das Programm Schreibrechte für den Ordner xy benötigt, sodass es ggf nach Adminrechten fordert.

Danke für eure Hilfe

MfG
Dimholz
  Mit Zitat antworten Zitat