AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Kann auf C:\ schreiben aber nicht auf APPDATA.
Thema durchsuchen
Ansicht
Themen-Optionen

Kann auf C:\ schreiben aber nicht auf APPDATA.

Ein Thema von EDatabaseError · begonnen am 16. Mai 2007 · letzter Beitrag vom 17. Mai 2007
Antwort Antwort
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#1

Kann auf C:\ schreiben aber nicht auf APPDATA.

  Alt 16. Mai 2007, 23:58
N'abend...

Da man unter Vista ja die Ini's & Co. unter Appdata speichern soll wollte ich eine Anwendung von mir mal Vistaready machen.

Unter XP getestet:

Wenn ich in die INI unter APPDATA+\firmenname\progname\ speichern will bekomm ich ne schöne Exception das dies nicht möglich seie. Dafür kann ich die INI aber ohne Probleme unter C:\ ablegen.

Und das schlimmste ist ich hab Adminrechte

mfg
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#2

Re: Kann auf C:\ schreiben aber nicht auf APPDATA.

  Alt 17. Mai 2007, 00:01
Welches AppData meinst Du?

AllUsers oder Benutzerverzeichnis?

Siehe auch Diesen Thread.
Catbytes
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Kann auf C:\ schreiben aber nicht auf APPDATA.

  Alt 17. Mai 2007, 00:07
Ich mein dieses Appdata...

Start-Ausführen-CMD-SET und dann APPDATA

also kurz: Die Environmentvaribale APPDATA.

mfg
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Kann auf C:\ schreiben aber nicht auf APPDATA.

  Alt 17. Mai 2007, 15:43
ein ganz dezentes *push*

Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#5

Re: Kann auf C:\ schreiben aber nicht auf APPDATA.

  Alt 17. Mai 2007, 15:50
Nimm nicht die Environmentvariable, sondern besorge Dir den Pfad richtig über die API. Catbytes hat dazu ja schon etwas verlinkt.

Ich hatte das woanders schonmal gepostet, hier einfach nochmal ein grober Codeschnipsel:

Delphi-Quellcode:
function SpecialDirectory(const iID: Integer): string;
// Needs: ShlObj on Delphi, WinExt on FPC
var aPath : array[0..MAX_PATH] of Char;
    pilTemp: PItemIDList;
begin
   try
      if SHGetSpecialFolderLocation(0, iID, pilTemp)=S_OK then begin
         if SHGetPathFromIDList(pilTemp, aPath) then begin
            Result := string(aPath);
         end else Result := '';
         CoTaskMemFree(pilTemp);
      end else Result := '';
   except
      Result := '';
   end;
end;

var sPath: string;
begin
   sPath := SpecialDirectory(CSIDL_APPPDATA);
end;
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Kann auf C:\ schreiben aber nicht auf APPDATA.

  Alt 17. Mai 2007, 16:02
Bei deiner Funktion wird auch noch die ActiveX benötigt und er kennt CSIDL_APPPDATA nicht.

Aber der Pfad: C:\Dokumente und Einstellungen\Tobias Hocke\Anwendungsdaten ist doch der korrekte Pfad (dieser Steht auch so in den Environments)

Mfg
Tobi
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Kann auf C:\ schreiben aber nicht auf APPDATA.

  Alt 17. Mai 2007, 16:05
Du könntest dir den Pfad auch aus der Registry holen. Es gibt aber zwei Gefahren:

1. dass die variablen irgendwann einfach nicht mehr existieren
2. dass Windows das ganze umleitet, und du damit nicht nur eine Fehlermeldung bekommst, sondern sehr inkonsistentes Verhalten deiner Anwendung.

Also machs so. Und die KOnstante kannst du dir so holen: http://www.google.com/codesearch?q=C...nG=Code+suchen
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Kann auf C:\ schreiben aber nicht auf APPDATA.

  Alt 17. Mai 2007, 16:12
APPDATA aus Registry : C:\Dokumente und Einstellungen\Tobias Hocke\Anwendungsdaten
APPDATA aus Environments : C:\Dokumente und Einstellungen\Tobias Hocke\Anwendungsdaten

Und dann noch diesen Pfad dazu : \Tobias Hocke Software\produktname\

Daraus folgt dieser Pfad in den ich nicht schreiben kann:
C:\Dokumente und Einstellungen\Tobias Hocke\Anwendungsdaten\Tobias Hocke Software\produktname\



Ich werde nun noch die Environment aus der API auslesen und vergleichen...

//EDIT:
Und dieser Pfad ist auch gleich
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#9

Re: Kann auf C:\ schreiben aber nicht auf APPDATA.

  Alt 17. Mai 2007, 18:28
Hmmm... wie wärs dann mal mit dem genauen Text der "schönen Exception"?
Außerdem: gibts den Ordner schon? Sonst ForceDirectories.
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Kann auf C:\ schreiben aber nicht auf APPDATA.

  Alt 17. Mai 2007, 18:55
Man sollte nie versuchen in ein Verzeichnis zu schreiben welches noch nicht da ist. Die 2 Unterordner haben gefehlt.
Das kommt davon wenn man nach 23 Uhr etwas anfängt

Mfg
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz