AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Schreibrechte abfragen?

Ein Thema von AlexII · begonnen am 24. Jan 2009 · letzter Beitrag vom 26. Jan 2009
Antwort Antwort
Seite 2 von 2     12
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#11

Re: Schreibrechte abfragen?

  Alt 24. Jan 2009, 22:19
Also mit der Userrights Beispiel kommst du nicht weiter.
Der Quelltext von Nico funktioniert in Vista oder neuer nicht immer korrekt, da kein Integrity Label überprüft wird.

Was machen? Das mal ausprobieren.

Delphi-Quellcode:
var hFile : THandle;

hFile := CreateFile(PChar(filename), DELETE, 0, nil, OPEN_EXISTING, 0,0);

if (hFile = INVALID_HANDLE_VALUE) then
begin
  if GetLastError() = ERROR_ACCESS_DENIED then ...
  if GetLastError() = ERROR_FILE_NOT_FOUND then ...
end
else
  CloseHandle(hFile);
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.162 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: Schreibrechte abfragen?

  Alt 24. Jan 2009, 22:25
Code:
[s] if GetLastError() = ERROR_ACCESS_DENIED then ...
  if GetLastError() = ERROR_FILE_NOT_FOUND then ... [/s]
das geht aber nicht so ... GetLastError setzt den Fehlerwert zurück, wen es aufgerufn wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Schreibrechte abfragen?

  Alt 24. Jan 2009, 22:42
Zitat von himitsu:
GetLastrror setz den Fehlerwert zurück, wen es aufgerufn wird.
Nein, mit Sicherheit nicht (es wird nur NtCurrentTeb().LastErrorValue ausgelesen).
Auch wenn der Hinweis auf ein case-of oder eine lokale Variable natürlich berechtigt ist, da der thread-bezogene Fehlercode durch nachfolgenden Code überschrieben werden könnte.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#14

Re: Schreibrechte abfragen?

  Alt 24. Jan 2009, 22:49
Das "..." ruft zum Denken auf! :"Wie geht es hier weiter?" Bedenklich wäre es doch, wenn man nur Copy&Paste macht. Meine geposteten Codes haben daher gerne mal einen unabsichtlichen Fehler drin, der gefunden werden muss. Wir sind doch schließlich alle nur Menschen, nicht wahr?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.162 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: Schreibrechte abfragen?

  Alt 24. Jan 2009, 22:56
Ganz sicher?

Delphi-Quellcode:
SetLastError(123);
MessageDlg(IntToStr(GetLastError), mtInformation, [mbOK], 0);
MessageDlg(IntToStr(GetLastError), mtInformation, [mbOK], 0);
Zitat:
---------------------------
Informationen
---------------------------
123
---------------------------
OK
---------------------------
Zitat:
---------------------------
Informationen
---------------------------
0
---------------------------
OK
---------------------------
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#16

Re: Schreibrechte abfragen?

  Alt 24. Jan 2009, 23:09
MessageDlg ruft intern Windows API Funktionen auf. Davon wird die eine oder andere den Wert auf 0 setzen. Das sollte zwar so nicht sein, weil API Funktionen normalerweise bei Erfolg den Fehlercode einfach stehenlassen, das ist aber nicht immer so.
Vllt macht es die MessageDlg Fkt auch selbst.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.162 Beiträge
 
Delphi 10.4 Sydney
 
#17

Re: Schreibrechte abfragen?

  Alt 24. Jan 2009, 23:25
ok, geb mich geschlagen ... schön das mal geändert zu wissen, es es dann die ganze Zeit falsch im Kopf

Delphi-Quellcode:
Var E1, E2: LongWord;
begin
  SetLastError(123);
  E1 := GetLastError;
  E2 := GetLastError;
  SetLastError(123);
  MessageDlg(Format('%d %d', [E1, E2]), mtInformation, [mbOK], 0);
  MessageDlg(IntToStr(GetLastError), mtInformation, [mbOK], 0);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#18

Re: Schreibrechte abfragen?

  Alt 24. Jan 2009, 23:30
Wir sind doch schließlich alle nur Menschen, nicht wahr?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.707 Beiträge
 
FreePascal / Lazarus
 
#19

Re: Schreibrechte abfragen?

  Alt 25. Jan 2009, 00:18
Jetzt verstehe ich überhaupt nix Kann mir jemand eine klare Antwort geben?
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#20

Re: Schreibrechte abfragen?

  Alt 26. Jan 2009, 09:08
passt schon:
http://www.delphipraxis.net/internal...dc82ea2#993059
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf