Nein, das ist definitiv nicht der Fall. Beispiel: Textdatei direkt auf C:\ schreiben.
Delphi-Quellcode:
procedure TForm20.Button1Click(Sender: TObject);
var
strings: TStrings;
begin
strings := TStringList.Create();
strings.Append('Hallo Welt');
strings.SaveToFile('c:\textfile.txt');
end;
Führt man das als "normaler Benutzer" aus: Zugriff verweigert. Führt man das mit einem normalen Administratorkonto aus: Geht.
Das sollte bei aktivierter
UAC aber definitiv nicht der Fall sein.
Warum es nach deiner Impersonation nicht funktioniert ist klar. LogonUser() liefert dir wie gesagt nur das restricted Admin Token. Das hat nicht mehr Rechte als ein eingeschränktes Benutzerkonto.
Du hast folgende Möglichkeiten:
- 2.Prozess (zeigt aber jedes Mal eine UAC Meldung an)
- TaskScheduler
- System Service