AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verzeichnisrechte unter Vista

Ein Thema von emsländer · begonnen am 23. Aug 2007 · letzter Beitrag vom 17. Okt 2007
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Master-of-Magic

Registriert seit: 24. Jul 2006
37 Beiträge
 
Delphi 2005 Personal
 
#31

Re: Verzeichnisrechte unter Vista

  Alt 24. Aug 2007, 10:02
hoika hats erfasst. Alle Anwendungsdaten gehören in das "Anwendungsdaten"-Verzeichnis des Systems/Benutzers.

Das EINZIGE was unter Programme liegen sollte, sind statische Daten (Ressourcen etc.) und die Anwendungen. Sich ändernde Dinge wie Zinsdaten sollten grundsätzlich unter
Delphi-Quellcode:
var
  path: array[0..MAX_PATH] of char;
begin
  SHGetFolderPath( 0, CSIDL_APPDATA, 1, 0, @path[0]);
  SHGetFolderPath( 0, CSIDL_LOCAL_APPDATA, 1, 0, @path[0]);
  SHGetFolderPath( 0, CSIDL_COMMON_APPDATA, 1, 0, @path[0]);
end;
// Code ungetestet!
gespeichert werden!

Was das Update angeht: Normale Nutzer haben keinerlei Schreibrechte unter Programme, nur Admins dürfen das. PUNKT. Ich bin mir nicht mal sicher, ob unter Vista überhaupt Standardnutzer die Schreibrechte dafür bekommen könnten ...

Entweder du nutzt den Update-Dienst oder du drehst den Spieß um: Nicht die Clients holen sich das Update vom Server (Intranet?), sondern der Server startet ein Tool mit Adminrechten, dass die neuen Daten an die Clients verteilt - sofern das bei euch gehen würde.

edit: Delphi-Code korrigiert
  Mit Zitat antworten Zitat
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#32

Re: Verzeichnisrechte unter Vista

  Alt 24. Aug 2007, 10:17
Zitat von Master-of-Magic:
hoika hats erfasst. Alle Anwendungsdaten gehören in das "Anwendungsdaten"-Verzeichnis des Systems/Benutzers.

Das EINZIGE was unter Programme liegen sollte, sind statische Daten (Ressourcen etc.) und die Anwendungen. Sich ändernde Dinge wie Zinsdaten sollten grundsätzlich unter
Delphi-Quellcode:
SHGetFolderPath( 0, CSIDL_APPDATA, 1, 0, @path);
SHGetFolderPath( 0, CSIDL_LOCAL_APPDATA, 1, 0, @path);
SHGetFolderPath( 0, CSIDL_COMMON_APPDATA, 1, 0, @path);
// Code ungetestet!
gespeichert werden!

Was das Update angeht: Normale Nutzer haben keinerlei Schreibrechte unter Programme, nur Admins dürfen das. PUNKT. Ich bin mir nicht mal sicher, ob unter Vista überhaupt Standardnutzer die Schreibrechte dafür bekommen könnten ...

Entweder du nutzt den Update-Dienst oder du drehst den Spieß um: Nicht die Clients holen sich das Update vom Server (Intranet?), sondern der Server startet ein Tool mit Adminrechten, dass die neuen Daten an die Clients verteilt - sofern das bei euch gehen würde.
Unsere Software läuft nicht im Intranet, sondern ca. 5000 User laden sich die Updates über das Internet. Zinsdaten müssen täglich aktualisiert werden. Das Hauptproblem allerdings ist, das die Anwendung selbst alle paar Tage geändert werden muß, da sich nicht nur die Zinsen ändern, sondern auch div. Hypothekenberechnungsmodelle einiger Banken, so das die Software "lebt" und ich alle paar Tage ein Update bringen muss.

Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#33

Re: Verzeichnisrechte unter Vista

  Alt 24. Aug 2007, 10:28
Hi,

könnte man diese Berechnungen nicht in Module (Plugins, BPLs) auslagern und diese in den genannten Verzeichnissen ablegen?

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#34

Re: Verzeichnisrechte unter Vista

  Alt 24. Aug 2007, 10:29
Zitat von mirage228:
Hi,

könnte man diese Berechnungen nicht in Module (Plugins, BPLs) auslagern und diese in den genannten Verzeichnissen ablegen?

mfG
mirage228
Schwierig bis fast unmöglich, da das der Programmkern (Scoring) ist
Ich frage mich ohnehin, wie ich dll´s ersetzen soll, wenn sich mal wieder eine zugekaufte Lib ändert...


Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#35

Re: Verzeichnisrechte unter Vista

  Alt 24. Aug 2007, 10:30
Zitat von emsländer:
Unsere Software läuft nicht im Intranet, sondern ca. 5000 User laden sich die Updates über das Internet. Zinsdaten müssen täglich aktualisiert werden. Das Hauptproblem allerdings ist, das die Anwendung selbst alle paar Tage geändert werden muß, da sich nicht nur die Zinsen ändern, sondern auch div. Hypothekenberechnungsmodelle einiger Banken, so das die Software "lebt" und ich alle paar Tage ein Update bringen muss.
Das riecht nach Arbeit... Du wirst wohl nicht umhin kommen, auch die sich ändernden Berechnungsmodelle dorthin auszulagern.
Bei 5000 Usern könnte es sich aber lohnen, das über scriptgesteuerte MSI-Updates zu bewerkstelligen.

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#36

Re: Verzeichnisrechte unter Vista

  Alt 24. Aug 2007, 11:09
Zitat von Master-of-Magic:
Das EINZIGE was unter Programme liegen sollte, sind statische Daten (Ressourcen etc.) und die Anwendungen. Sich ändernde Dinge wie Zinsdaten sollten grundsätzlich unter
Delphi-Quellcode:
SHGetFolderPath( 0, CSIDL_APPDATA, 1, 0, @path);
SHGetFolderPath( 0, CSIDL_LOCAL_APPDATA, 1, 0, @path);
SHGetFolderPath( 0, CSIDL_COMMON_APPDATA, 1, 0, @path);
// Code ungetestet!
gespeichert werden!
Nun mal ne ganz blöde Frage (bin im Moment total von der Rolle).
Im Moment speichere ich die Zins- und LizenzUpdates(verschlüsselt) in %program_path%\meineFirma.
Die vom Programm erzeugten Hypothekendateien (xml) in %program_path%\meineFirma\Daten.

Was schlagt Ihr vor, wo ich die Daten nun hinpacken soll? Ich möchte die Anwendung nicht für Vista UND XP getrennt pflegen müssen, sondern eine Anwendung, welche auf beiden Systemen läuft. Obenauf speichere ich einige Dinge in der Registry unter HKEY_CURRENT_USER ...

Achja, meine Entwicklungsumgebung läuft auf XP64

Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Verzeichnisrechte unter Vista

  Alt 24. Aug 2007, 11:23
Was spricht dagegen die vorgeschlagenen Verzeichnisse zu nehmen? Wobei ich CSIDL_APPDATA bevorzugen würde.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von emsländer
emsländer

Registriert seit: 21. Aug 2004
Ort: Lengerich
658 Beiträge
 
RAD-Studio 2009 Ent
 
#38

Re: Verzeichnisrechte unter Vista

  Alt 24. Aug 2007, 11:50
Zitat von Luckie:
Was spricht dagegen die vorgeschlagenen Verzeichnisse zu nehmen? Wobei ich CSIDL_APPDATA bevorzugen würde.
Ich denke mir, das ich dann für Zins- und Lizenzdaten \Documents and Settings\All Users\appdata ? und für die Daten (auf die ja alle zugreifen sollen) \Documents and Settings\All Users\shared Documents ?
Sollte dann doch so ok sein?

Wie komm ich an die Ordner? Denn die sind ja auch von Version zu Version unterschiedlich. Ich habe es mit DE, NL und EN Versionen von XP, XP64, Vista, Vista64

Gruss

EL


Narben am Körper sind ein Zeichen dafür, das man gelebt hat.
Narben auf der Seele sind ein Zeichen dafür, das man geliebt hat.
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#39

Re: Verzeichnisrechte unter Vista

  Alt 24. Aug 2007, 11:53
War das nicht von Luckie?

Delphi-Quellcode:
function GetShellFolder(CSIDL: integer): string;
var
  pidl : PItemIdList;
  FolderPath : string;
  SystemFolder : Integer;
  Malloc : IMalloc;
begin
  Malloc := nil;
  FolderPath := '';
  SHGetMalloc(Malloc);
  if Malloc = nil then
  begin
    Result := FolderPath;
    Exit;
  end;
  try
    SystemFolder := CSIDL;
    if SUCCEEDED(SHGetSpecialFolderLocation(0, SystemFolder, pidl)) then
    begin
      SetLength(FolderPath, max_path);
      if SHGetPathFromIDList(pidl, PChar(FolderPath)) then
      begin
        SetLength(FolderPath, length(PChar(FolderPath)));
      end;
    end;
    Result := FolderPath;
  finally
    Malloc.Free(pidl);
  end;
end;
Das sollte auf allen Systemen funktionieren.

Grüße, Messie
  Mit Zitat antworten Zitat
Master-of-Magic

Registriert seit: 24. Jul 2006
37 Beiträge
 
Delphi 2005 Personal
 
#40

Re: Verzeichnisrechte unter Vista

  Alt 24. Aug 2007, 12:07
Die von Luckie ist wohl die 'sauberste'. Schnelle Lösungen hab ich oben gepostet - die sollten es auch tun. Hier nochmal der Hinweis auf das Video, dort wird das Ganze erklärt!

Da du in der Registry auf CURRENT_USER zugreifst gehe ich davon aus, dass dein Programm auch nur für den jeweiligen Benutzer und nicht für alle Benutzer des Computers gedacht ist. Ich würde daher auch wie Luckie meinte, CSIDL_APPDATA vorschlagen. Damit bekommst du mit seiner Funktion unter XP bei mir z.B. "C:\Dokumente und Einstellungen\Besitzer\Anwendungsdaten" - und auf anderen Systemen das entsprechende Verzeichnis.

Und wenn du die Daten doch für alle Nutzer eines Computers verfügbar machen möchtest, wäre CSIDL_COMMON_APPDATA dein Freund.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


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 06:49 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