AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Application Data unter Vista - CSIDL_COMMON_APPDATA richtig?
Thema durchsuchen
Ansicht
Themen-Optionen

Application Data unter Vista - CSIDL_COMMON_APPDATA richtig?

Ein Thema von moelski · begonnen am 24. Okt 2007 · letzter Beitrag vom 24. Jun 2009
Antwort Antwort
Seite 1 von 2  1 2      
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Application Data unter Vista - CSIDL_COMMON_APPDATA richtig?

  Alt 24. Okt 2007, 09:01
Moin !

Ich versuche gerade unter Vista INI Dateien, welche die Anwendung braucht, an einer Stelle abzulegen, wo alle User Zugriff haben. Dazu habe ich folgendes versucht ... GetSpecialFolder(CSIDL_COMMON_APPDATA) ...

Das ergibt unter Vista c:\ProgramData (zumindest war es bei meinem Kollegen so). Nun stellt sich mir die Frage ob das denn wirklich die richtige Stelle ist. Wie gesagt, Ziel sollte es sein das jeder User auf die Dateien mit Vollzugriff zugreifen kann.

Wenn ich aber nun unter Vista die Dateien nach *CSIDL_COMMON_APPDATA*\AppName\... kopieren lasse und versuche dort eine Datei zu löschen bekomme ich sofort "Zugriff auf den Zielordner wurde verweigert ... Sie müssen diesen Vorgang bestätigen ...". Das wäre auf Dauer für einen User ziemlich nervend ...

Frage also ... Wo lege ich die Daten unter Vista nun am besten ab wenn es mit CSIDL_COMMON_APPDATA scheinbar nicht klappt (oder eben nur mit den Umständen der Bestätigung) ?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: Application Data unter Vista - CSIDL_COMMON_APPDATA rich

  Alt 24. Okt 2007, 10:30
Hmm, hast du ein Vista-Manifest? Da gibt es ja doch diese unangenehme Roaming-Geschichte...
Edit: Andererseits sehe ich gerade, dass offenbar nur der User-bezogene AppData-Ordner Roaming. So gesehen ist vielleicht mein Beitrag hinfällig (weiß nicht, ob das Manifest eventuell trotzdem Abhilfe schaffen kann).
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Application Data unter Vista - CSIDL_COMMON_APPDATA rich

  Alt 24. Okt 2007, 10:56
Zitat von moelski:
Dazu habe ich folgendes versucht ... GetSpecialFolder(CSIDL_COMMON_APPDATA) ...

Das ergibt unter Vista c:\ProgramData
Nein das ist der Ordner in denen Programme gemeinsam genutzte Programmdateien ablegen können, aber nicht der Ordner für Benutzereinstellungen.

Zu erst einmal die Frage, ist es denn sinnvoll, dass die Konfigurationsdatei zentral abgelegt wird? Überschreiben sich da die Nutzer ihre Einstellungen nicht gegenseitig? Wenn es keine Einstellungen gibt, die die Benutzer verändern müssen, dann würd eich es dem Administrator überlassen die Anwendung zu konfigurieren und die Konfigurationsdatei im Anwendungsverzeichnis ablegen. So ist auch sichergestellt, dass die Anwender nichts verstellen können.

Sollen die Anwender denn noch die Anwendung teilweise konfigurieren können, würde ich diese Einstellungen für jeden Benutzer in seinem HOMEDIR ablegen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Application Data unter Vista - CSIDL_COMMON_APPDATA rich

  Alt 25. Okt 2007, 11:19
Moin !

Zitat:
Zu erst einmal die Frage, ist es denn sinnvoll, dass die Konfigurationsdatei zentral abgelegt wird?
Naja in gewisser weise schon. Aber wir haben uns nun drauf geeinigt, daswir es doch pro User machen wollen.

Kann mir da jemand sagen welcher Ordner bzw. welche CSIDL sich anbietet?
Gibt es da was, was unter 2k, XP und Vista gleichermassen funktioniert?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#5

Re: Application Data unter Vista - CSIDL_COMMON_APPDATA rich

  Alt 25. Okt 2007, 12:09
Mit CSIDL_APPDATA bekommst du unter XP und 2K C:\Dokumente und Einstellungen\Benutzer\Anwendungsdaten.
Unter Vista C:\Users\Benutzer\AppData\Roaming.

Den Pfad + Anwendungsname, so mach ichs und es läuft unter beiden Systemen.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Application Data unter Vista - CSIDL_COMMON_APPDATA rich

  Alt 25. Okt 2007, 12:23
Moin Mario,

nach ein paar ersten Tests kann ich das so bestätigen.
So sollte es gehen.

Unter ME / 98 landet man zwar in einem gemeinsamen Verzeichnis, aber das ist an der Stelle nicht so tragisch. (vor allem was unsere Anwendung angeht).
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#7

Re: Application Data unter Vista - CSIDL_COMMON_APPDATA rich

  Alt 24. Jun 2009, 22:50
Ich weiß, der Thread ist alt; aber da er eigentlich genau mein derzeitiges Thema trifft...

Ich habe folgendes Problem: "CSIDL_APPDATA" liefert mir immer "C:\Users\Default\..." zurück, obwohl meine Daten derzeit in "C:\Users\MCXSC\..." liegen. Egal was ich versuche (z.B. CSIDL_LOCAL_APPDATA), ich bekomme immer nur das "Default" zurückgegeben. Jemand eine Idee?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Application Data unter Vista - CSIDL_COMMON_APPDATA rich

  Alt 24. Jun 2009, 22:55
Vorweg. ich würde CSIDL_LOCAL_APPDATA nehmen, so lange es sich nicht um Einstellungen handlet, die auch über das Netzwerk verfügbar sein müssen.

Wie sieht denn deine Funktion aus, um den ordner zu ermittlen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#9

Re: Application Data unter Vista - CSIDL_COMMON_APPDATA rich

  Alt 24. Jun 2009, 23:10
Ich benutze kein Vista, hab mir das letztens mit den Ordnern aber angeguckt und die Hände über den Kopf geschlagen. Ich hab (noch) keine Ahnung was Microsoft sich das ausgedacht hat. So hat ein Programm das ich installiert habe, seine Programme unter C:\Program Files installiert, das Programm befand sich aber plötzlich unter C:\Programme. Schau ich mir die Eigenschaften an, ist es aber unter C:\Program Files. U. U. hat das seine Richtigkeit.

Teste mal das (brauchst ein Meno und Button auf dem Formular). Sag mir welche Nummer dein Verzeichnis ist ist und ich sag dir welche Konstante es ist.

Delphi-Quellcode:
uses Shlobj;

function SpecialDirectory(ID: Integer): String;
var
  pidl : PItemIDList;
  Path : PChar;
begin
  if SUCCEEDED(SHGetSpecialFolderLocation(0, ID, pidl)) then
  begin
    Path := StrAlloc(max_path);
    SHGetPathFromIDList(pidl, Path);
    Result := String(Path);
    if (Result <> '') and (Result[Length(Result)] <> '\') then Result := Result + '\';
  end
    else Result := #0;

  FreeMem(pidl);
  FreeMem(Path);
end;

procedure GetPaths(st: TStrings);
var
  i: Integer;
  s: String;
begin
  for i := 0 to 100 do
  begin
    s := SpecialDirectory(i);
    if Trim(s) <> 'then
      st.Add(Format('Wert %d = %s', [i, s]));
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  GetPaths(Memo1.Lines);
end;
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Application Data unter Vista - CSIDL_COMMON_APPDATA rich

  Alt 24. Jun 2009, 23:12
Zitat von Luckie:
Wie sieht denn deine Funktion aus, um den ordner zu ermittlen?
Die sieht so aus: http://www.delphipraxis.net/internal...t.php?t=160270

Und genau da liegt auch der Fehler. Was meinst Du, lieber MCXSC, was das TOKEN_DEFAULTUSER bedeutet?
Fridolin Walther
"While Mr. Kim, by virtue of youth and naiveté, has fallen prey to the inexplicable need for human contact, let me step in and assure you that my research will go on uninterrupted, and that social relationships will continue to baffle and repulse me."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:27 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