Entwickler-Ecke

Dateizugriff - Keine Dateispeicherung unter WIN10


hRb - Mi 04.01.17 21:12
Titel: Keine Dateispeicherung unter WIN10
Unter WIN10 kann ich nicht mehr uneingeschränkt Textdateien speichern (z.B. auf C:\ oder Speichersticks). Das liegt vermutlich am erhöhten Schutzkonzept von WIN10. Ich nutze die allseits bekannte Save-Routine

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
  if SaveDialog1.Execute then
  begin
  try
    s:= SaveDialog1.FileName;
    ... //ggf bak-datei anlegen
    Richedit1.Lines.SaveToFile(s);
    ... // Dateiname in INI-datei schreiben
  except
    ... Fehlermeldung
  end;

Profiprogramme liefern mir hier eine Administrator- oder Sicherheitsabfrage, sodass (evtl. mit Passwort) es dennoch funktioniert. Wie realisiert man so etwas? Compiliere derzeit meist noch mit Delphi7.


Delete - Mi 04.01.17 21:51

- Nachträglich durch die Entwickler-Ecke gelöscht -


jaenicke - Do 05.01.17 07:43

Beides sind keine echten Lösungen... Das Benutzerkonto zu ändern oder proforma immer Adminrechte anfordern sind Notlösungen, mehr nicht. Ersteres ist auch noch sicherheitstechnisch höchst bedenklich.

Die einfachste Variante ist das eigene Programm mit Adminrechten zu starten und schlicht die gewünschten Operationen als Parameter mitzugeben. Dann musst du das aber für jede Operation erneut machen.

Deutlich aufwendiger, aber auch die bei Weitem sauberer und elegantere Lösung ist ein Out-of-Process COM-Server. Entweder ein eigener, selbst im System registrierter, oder so:
http://www.codenewsfast.com/cnf/article/0/permalink.art-ng1925q704
Dieses Interface kannst du im Speicher halten und mehrfach verwenden, so dass nur einmal die Anforderung der Adminrechte nötig ist.