Delphi-PRAXiS
Seite 2 von 4     12 34      

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 Auf Schreibrechte unter Win 7 prüfen (https://www.delphipraxis.net/148746-auf-schreibrechte-unter-win-7-pruefen.html)

AlexII 7. Mär 2010 18:38

Re: Auf Schreibrechte unter Win 7 prüfen
 
Zitat:

Zitat von Luckie
Wir haben uns doch darauf geeinigt, dass du das Update als Administrator machst. Und als Administrator hast du Schreibrechte in besagtem Ordner. Warum also jetzt noch mal diese Verrenkungen?

Ja das habe ich auch vor, aber bis ich einen Updater (getrennt von der Prog.exe) geschrieben habe dauert es ein paar Wochen, und bis dahin will ich das so machen - falls ich schreiben kann (z.B. in XP) führe ich das Updaten wie immer durch, und falls ich nicht schreiben kann, weise ich den User auf die Downloadpage. Also das ist erst mal eine Zwischenlösung. :-D

DeddyH 7. Mär 2010 18:41

Re: Auf Schreibrechte unter Win 7 prüfen
 
Dann weise den Benutzer doch einfach per Messagebox o.ä. darauf hin, dass er für das Update Adminrechte braucht. Wenn er es trotzdem unter einem eingeschränkten Account durchführt, kannst Du nicht für die korrekte Funktion garantieren.

AlexII 7. Mär 2010 18:43

Re: Auf Schreibrechte unter Win 7 prüfen
 
Ne das keine elegante Lösung, wer weiß schon wie man sich als Admin anmelden soll, doch keine normaler User.

DeddyH 7. Mär 2010 18:45

Re: Auf Schreibrechte unter Win 7 prüfen
 
Und nicht zu wissen, ob Du im VirtualStore landest, erscheint Dir eleganter?

AlexII 7. Mär 2010 18:51

Re: Auf Schreibrechte unter Win 7 prüfen
 
Das will ich doch umgehen, deswegen Post #6

DeddyH 7. Mär 2010 18:53

Re: Auf Schreibrechte unter Win 7 prüfen
 
Meinst Du jetzt den Ordner, in dem Dein Programm liegt? Den bekommst Du mit ExtractFilePath(ParamStr(0)). Wenn Du versuchst, dort eine Datei anzulegen und bekommst einen Fehlercode 5, dann hast Du keine Rechte dazu.

AlexII 7. Mär 2010 19:00

Re: Auf Schreibrechte unter Win 7 prüfen
 
Ja genau... muss ich mal testen. :thumb:

Delphi-Quellcode:
ProgPath:=ExtractFilePath(ParamStr(0));

function KannIchSchreiben(const FileName: String): Boolean;
var
  fileHandle: Integer;
begin
  fileHandle := FileOpen(FileName, fmOpenWrite);
  result := (fileHandle >= 0);
  if result then begin
    FileClose(fileHandle);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if KannIchSchreiben(ProgPath + '\' + 'test.txt') then showmessage('ja') else showmessage('nein');
end;

Dezipaitor 7. Mär 2010 19:26

Re: Auf Schreibrechte unter Win 7 prüfen
 
Unter Windows 7 kannst du sogar auf C: eine Datei erzeugen. Die landet dann auch im Virtualstore. Dies ist neu in Win7, denn in Vista gab es noch den 5er Fehler.

Bau dir ein Vista Manifest rein, dass womöglich auch noch Adminrechte einfordert. So wird der Virtualstore für deine Anwendung ausgeschaltet und Adminrechte gibt es über UAC dazu.
Dein Code da oben, funkz sonst nicht.

Luckie 7. Mär 2010 19:28

Re: Auf Schreibrechte unter Win 7 prüfen
 
Dumm nur, dass ein Updater in der eigentlichen Anwendung integriert ist. Das heißt seine Anwendung fordert bei jedem Start Administratorenrechte an. Auch nicht sehr toll.

Bernhard Geyer 7. Mär 2010 19:33

Re: Auf Schreibrechte unter Win 7 prüfen
 
Nimm 2 Exes. Eine mit Vista-Manifest ohne Admin-Anforderung und eine mit Admin-Anforderung. Damit schaltest du in beiden fällen die Virtualisierung ab die eigentlich nur für veraltetet SW gedacht ist die noch vor Vista entwickelt wurde und munder Schreibrechte unter C:\Programme und C:\Windows vorrausgesetzt hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 Uhr.
Seite 2 von 4     12 34      

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