Autor Beitrag
Fabian W.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Do 05.01.06 10:50 
Hallo,


mein Programm schreibt einige Einstellungen in ne Ini-Datei im Anwendungsdaten-Verzeichniss von "All Users". Nu' weicht der Name dieses Verzeichnises (bei mir C:\Dokumente und Einstellungen\All Users\Anwendungsdaten) doch sicherlich von system zu System ab; bei fremdsprachigen sowieso. Ich kenne die Funtion SHGETSPECIALFOLDERLOCATION jedoch kenne ich die entsprechende Folder-ID nicht. Ich bräuchte die für das Anwendungsdatenverzeichnis von "All Users" und den aktiven Benutzer.

mfg

PS: Vlt sollte man die Folder-ID in dem oben genannten Topic ergänzen.

Moderiert von user profile iconTino: SID aus Link entfernt.
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Do 05.01.06 10:57 
Guten Morgen! :wink2:

Das wird wohl die CSIDL_COMMON_APPDATA Konstante sein.

user profile iconFabian W. hat folgendes geschrieben:
PS: Vlt sollte man die Folder-ID in dem oben genannten Topic ergänzen.

Sehr gute Idee. Kannst ja mal so eine Übersicht erstellen. ;-)

Lg Martin

_________________
Ein Nutzer der Ecke ;-)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 05.01.06 10:58 
Moin!

Schau doch mal ins MSDN, da sind die doch alle aufgelistet. Ansonsten schau mal in die ShlObj.pas direkt rein.

cu
Narses

//EDIT: zu spät... :(
Fabian W. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Do 05.01.06 11:06 
user profile iconNarses hat folgendes geschrieben:
Moin!

Schau doch mal ins MSDN, da sind die doch alle aufgelistet. Ansonsten schau mal in die ShlObj.pas direkt rein.
Ich hab in die ShlObj.pas rein geschaut (stell' dir vor! ;-)) aber die meisten Definitionen für die IDs sind (für mich) unverständlich oder doppeldeutig.

@Martin1966: Die Konstante wird bei mir nur rot unterringelt :(
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Do 05.01.06 11:14 
user profile iconFabian W. hat folgendes geschrieben:
@Martin1966: Die Konstante wird bei mir nur rot unterringelt :(


Dann definiere die Konstante einfach selbst. Die Werte findest du auf msdn.microsoft.com/l...ence/enums/csidl.asp

Hier ist im übrigen eine deutsche Beschreibung der Konstanten.

Lg Martin

_________________
Ein Nutzer der Ecke ;-)
Fabian W. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Do 05.01.06 11:15 
msdn.microsoft.com/l...ence/enums/csidl.asp hier ist ne List mit den IDs. CSIDL_COMMON_APPDATA kommt drin vor, geht aber wie gesat bei mir ned ( :? ). CSIDL_APPDATA für das User-Verzeichnis geht dagegen schon, aber ich möchte nunmal das All Users-Verzeichnis.

//EDIT: Mist, zu langsam
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Do 05.01.06 11:18 
Die Borländer haben wohl wirklich die Konstante vergessen. Definiere sie einfach selbst:
ausblenden Delphi-Quelltext
1:
2:
Const
  CSIDL_COMMON_APPDATA = $0023;

_________________
Ein Nutzer der Ecke ;-)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 05.01.06 14:42 
Im "All Users" Verzeichnis haben auch nur Administratoren Schreibrechte. Ich hoffe, das ist die bewußt.
Fabian W. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Do 05.01.06 16:58 
Das war mir nicht bewusst. Wie verhälz sich das dann?: Nur keine Schreibrechte aber Lesen kann ich unter 'nem eingeschränkten Konto.

Grundsätzlich: wenn ich ne Anwendung hab, die nicht zwingend (nur für die Optionen; min Prog prüft vorher ob Admin) ein Adminkonto benötigt, Lässt mich Win die Exe dann im eingeschränkten ausführern?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.01.06 00:26 
Lesen ja, schreiben nein. Den zweiten Absatz habe ich nicht verstanden. :-?
klezmor
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 558


delphi 6 personal delphi 2005 personal
BeitragVerfasst: Fr 06.01.06 00:59 
Mal ne Frage ist das Verzeichnis, von der Windowsversion unabhängig insbesondere Windows 2000 und Xp, haben die den gleichen Pfad.

_________________
"Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.01.06 06:14 
Unter Windows 9X gibt es diesen Ordner nicht, das es in dem Sinne keine Benutzer gibt.
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Fr 06.01.06 07:37 
user profile iconLuckie hat folgendes geschrieben:
Unter Windows 9X gibt es diesen Ordner nicht, das es in dem Sinne keine Benutzer gibt.


Also beschwören will ich es nicht und überprüfen kann ich es nicht, aber hatte Windows 98 nicht Profile? Das Ganze wurde ein wenig kompliziert gemacht, es funktionierte aber. Es gab nur einen Ordner dafür. Hat sich aber ein anderer User angemeldet, dann wurde die jetzige Einstellung gesichert und eine Andere von irgendwo verschoben. Zumindest gab es auch bereits damals sowas wie Anwendungsdatenordner, nur eben nicht fest verankert wie jetzt, sondern da wurde viel verschoben und kopiert.

Weiterhin erinnere ich mal an meine Unit als Beispiel. Da wird die Ini auch in Anwendungsdatenordner gespeichert: www.delphi-forum.de/....php?p=247902#247902

Außerdem gibt es da auch die Info_IniRedOnly und Info_IniWriteTest Funktionen mit denen man prüfen kann ob es möglich ist eine Ini zu schreiben. Um mit der Unit in Anwendungsdaten-Verzeichniss von "All Users" zu arbeiten, reicht es einfach nur die Konstante zu wechseln.

_________________
Popov
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.01.06 08:12 
So weit ich mich erinnern kann, betrafen das nur das Startmenü und den Desktop mit den Profilen. Allerdings würd eich heute nicht mehr Windows 9x / ME freiwillig unterstützen.
Fabian W. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Fr 06.01.06 09:45 
Grundsätzlich: wenn ich ne Anwendung hab, die nicht zwingend (nur für die Optionen; min Prog prüft vorher ob Admin) ein Adminkonto benötigt, Lässt mich Win die Exe dann im eingeschränkten ausführern?

War umstämdlich formuliert. Ich wollte wissen ob Windows eine Anwendung mit folgenden Eigenschaften unter einen eingeschränkten Benutzerkonto startet:
-Benötigt für den Betrieb grundsätzlich keine Adminrechte.
-Wenn man in die Optionen will schon (da Registry und Anwedungsdaten geschrieben werden sollen); das ÜPrpg prüft aber vor dem Start der Optionen ob es Adminrechte hat.

ich hoffe so isses besser zu verstehen ;-)


mfg
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Fr 06.01.06 10:49 
Ist immer noch kompliziert formuliert, aber hier paar Antworten auf nie gestellte Fragen: also du kannst prüfen ob du (bzw. das Programm) Adminrechte hat. Während das Programm ausgeführt wird, kannst du die Rechte nicht mehr ändern. Du kannst aber ein extra Programm in Form eines Dialogfensters starten. Dieses kannst du so starten, daß für den Fall, daß du keine Adminrechte hast, zuerst das RunAs Fenster startet. In diesem Fenster kann der User das Options-Programm mit Adminrechten starten. Danach kannst du prüfen ob du die Recht hast. Wenn nicht, dann brichst du wegen fehlende Rechte ab.

Allerdings schlage ich dir vor nur die nötigsten Optionen so zu regeln, daß sie Adminrechte benötigen. Kein Mensch gibt gerne auf die Dauer einem Optionsfenster Adminrechte. Vielleicht denkst du jetzt, daß es unbedingt nötig ist, daß alle die gleichen Einstellungen nutzen müssen, aber auch große Programme machen sich nicht die Arbeit. Pro Konto eigene Einstellungen.

Was noch möglich ist: du kannst die Datei so verändern, daß der "Benutzer" Vollzugrif auf die Datei hat. D.h. zuerst die Datei erstellen (noch mit Adminrechten) und dann die Rechte an der Datei anpassen. Weiterhin, aber da bin ich auch noch nicht so voll drin, erstellst du ein Zusatzkonto für das Programm, in dem du dem Programm Individualrechte geben kannst. Das ist aber sehr kompliziert und wird in der Regel nur von großen Aplikationen als Möglichkeit genutzt.

_________________
Popov
Fabian W. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: Sa 07.01.06 17:07 
Danke, aber ich brauche keine Benutzerspezifischen Einstellungen. Wenn die vom Admin vorgenommen werden is mir das lieber. Deshalb bräuchte ich die Antwotr auf die oben gestellte Frage. Das Prog läuft sowieso erst ab Win XP.

mfg
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 07.01.06 20:33 
Das war die Antwort auf die oben gestellte Frage.

_________________
Popov
Fabian W. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: So 08.01.06 11:11 
Naja, wenn's ned anders geht kann ichs in ne andere Exe packen, find ioch aber unnötig...