AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Ordner in den Eigenen Dateien systemweit erzeugen/löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner in den Eigenen Dateien systemweit erzeugen/löschen

Ein Thema von cruso · begonnen am 17. Aug 2006 · letzter Beitrag vom 17. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
cruso
(Gast)

n/a Beiträge
 
#1

Ordner in den Eigenen Dateien systemweit erzeugen/löschen

  Alt 17. Aug 2006, 12:59
Hi!

So kann man im aktuellen Benutzerkonto einen Ordner unter "Eigene Dateien" erstellen:

Delphi-Quellcode:
function GetSpecialFolder(hWindow: HWND; Folder: Integer): String;
var
  pMalloc: IMalloc;
  pidl: PItemIDList;
  Path: PChar;
begin
  // get IMalloc interface pointer
  if (SHGetMalloc(pMalloc) <> S_OK) then
  begin
    MessageBox(hWindow, 'Couldn''t get pointer to IMalloc interface.',
               'SHGetMalloc(pMalloc)', 16);
    Exit;
  end;

  // retrieve path
  SHGetSpecialFolderLocation(hWindow, Folder, pidl);
  GetMem(Path, MAX_PATH);
  SHGetPathFromIDList(pidl, Path);
  Result := Path;
  FreeMem(Path);

  // free memory allocated by SHGetSpecialFolderLocation
  pMalloc.Free(pidl);
end;
Und dann:

Delphi-Quellcode:
//...
CreateDir(GetSpecialFolder(Handle, CSIDL_PERSONAL)+'\Neuer Ordner');
//...
Jetzt meine Frage:
Wie kann man (wenn man Admin ist) einen solchen Ordner systemweit erstellen/löschen? Also immer in den Eigenen Dateien auf allen Benutzerkonten?


MfG
Cruso
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Ordner in den Eigenen Dateien systemweit erzeugen/lösche

  Alt 17. Aug 2006, 13:35
Ich würde dies im Ordner C:\Documents and Settings\All Users ablegen.
Um dieses Verzeichnis zu bekommen
Delphi-Quellcode:
s :=GetSpecialFolder(Handle, CSIDL_COMMON_DOCUMENTS);
//Unterverzeichnis \Documents abtrennen
s := ExtractFilePath(s);
Andreas
  Mit Zitat antworten Zitat
cruso
(Gast)

n/a Beiträge
 
#3

Re: Ordner in den Eigenen Dateien systemweit erzeugen/lösche

  Alt 17. Aug 2006, 13:42
Zitat von shmia:
Ich würde dies im Ordner C:\Documents and Settings\All Users ablegen.
Um dieses Verzeichnis zu bekommen
Delphi-Quellcode:
s :=GetSpecialFolder(Handle, CSIDL_COMMON_DOCUMENTS);
//Unterverzeichnis \Documents abtrennen
s := ExtractFilePath(s);
Irgendwie verstehe ich das jetzt nicht ganz. Wie kann ich da nun einen Ornder systemweit erzeugen?

Es ist des weiteren auch wichtig, dass jeder Benutzer seinen eigenen Ordner hat und nur seine Daten verändert und nicht die aller Benutzer.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#4

Re: Ordner in den Eigenen Dateien systemweit erzeugen/lösche

  Alt 17. Aug 2006, 13:46
Zitat von cruso:
Wie kann man (wenn man Admin ist) einen solchen Ordner systemweit erstellen/löschen? Also immer in den Eigenen Dateien auf allen Benutzerkonten?
Was denn nun?
Einen Ordner, oder jeweils ein Ordner pro User?

Und was machst du, wenn die "Eigenen Dateien" auf einem Netzlaufwerk liegen bzw. auf dem Domänenserver...
  Mit Zitat antworten Zitat
cruso
(Gast)

n/a Beiträge
 
#5

Re: Ordner in den Eigenen Dateien systemweit erzeugen/lösche

  Alt 17. Aug 2006, 13:47
Zitat von NicoDE:
Zitat von cruso:
Wie kann man (wenn man Admin ist) einen solchen Ordner systemweit erstellen/löschen? Also immer in den Eigenen Dateien auf allen Benutzerkonten?
Was denn nun?
Einen Ordner, oder jeweils ein Ordner pro User?

Und was machst du, wenn die "Eigenen Dateien" auf einem Netzlaufwerk liegen bzw. auf dem Domänenserver...
Einen Ordner pro User. Jeder User soll einen eigenen Ordner in seinen Eigenen Dateien haben.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#6

Re: Ordner in den Eigenen Dateien systemweit erzeugen/lösche

  Alt 17. Aug 2006, 13:49
Dann wirst du wohl das jeweilige Benutzerprofil laden, den Ort der jeweiligen "Eigenen Dateien" ermitteln und den Ordner anlegen müssen.
  Mit Zitat antworten Zitat
cruso
(Gast)

n/a Beiträge
 
#7

Re: Ordner in den Eigenen Dateien systemweit erzeugen/lösche

  Alt 17. Aug 2006, 13:50
Zitat von NicoDE:
Dann wirst du wohl das jeweilige Benutzerprofil laden, den Ort der jeweiligen "Eigenen Dateien" ermitteln und den Ordner anlegen müssen.
Anders ist das nicht möglich? Schade!
  Mit Zitat antworten Zitat
EDatabaseError

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

Re: Ordner in den Eigenen Dateien systemweit erzeugen/lösche

  Alt 17. Aug 2006, 13:53
wenn man admin ist kommt man da nicht in alle Ordner - auch in die Eigenen Dateien der anderer User, oder
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#9

Re: Ordner in den Eigenen Dateien systemweit erzeugen/lösche

  Alt 17. Aug 2006, 13:53
Zitat von cruso:
Anders ist das nicht möglich?
Wie sonst?
SHGetFolderPath() kann ein Token übergeben werden, dass den Benutzer identifiziert. Um an das Token zu kommen, muss man den Benutzer erstmal anmelden...

Zitat von EDatabaseError:
wenn man admin ist kommt man da nicht in alle Ordner - auch in die Eigenen Dateien der anderer User, oder
Klingt als ob du die Pfade zusammenbauen möchtest - vergiß es, die "Eigenen Dateien" eines jeden Accounts können irgendwo liegen.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#10

Re: Ordner in den Eigenen Dateien systemweit erzeugen/lösche

  Alt 17. Aug 2006, 13:58
Es gibt da noch den Ordner "Default User".
Vermutung: Wenn man einen neuen User anlegt und sich dann anmeldet, wird alles aus "Default User"
ins aktuelle Userverzeichnis kopiert.
Andreas
  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 21:21 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