| Autor |
Beitrag |
Fabian W.
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: 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 Tino: SID aus Link entfernt.
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Do 05.01.06 10:57
Guten Morgen!
Das wird wohl die CSIDL_COMMON_APPDATA Konstante sein.
Fabian 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
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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. 
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: Do 05.01.06 11:06
Narses 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
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Do 05.01.06 11:14
Fabian 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. 
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: 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
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Do 05.01.06 11:18
Die Borländer haben wohl wirklich die Konstante vergessen. Definiere sie einfach selbst:
Delphi-Quelltext 1: 2:
| Const CSIDL_COMMON_APPDATA = $0023; |
_________________ Ein Nutzer der Ecke
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 05.01.06 14:42
Im "All Users" Verzeichnis haben auch nur Administratoren Schreibrechte. Ich hoffe, das ist die bewußt.
|
|
Fabian W. 
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: 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
|
Verfasst: Fr 06.01.06 00:26
Lesen ja, schreiben nein. Den zweiten Absatz habe ich nicht verstanden. 
|
|
klezmor
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: 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
|
Verfasst: Fr 06.01.06 06:14
Unter Windows 9X gibt es diesen Ordner nicht, das es in dem Sinne keine Benutzer gibt.
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Fr 06.01.06 07:37
Luckie 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
|
Verfasst: 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. 
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: 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
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: 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. 
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: 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
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Sa 07.01.06 20:33
Das war die Antwort auf die oben gestellte Frage.
_________________ Popov
|
|
Fabian W. 
      
Beiträge: 1766
Win 7
D7 PE
|
Verfasst: So 08.01.06 11:11
Naja, wenn's ned anders geht kann ichs in ne andere Exe packen, find ioch aber unnötig...
|
|