Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
Wo/wie einmalige Einstellungen speichern?
spacer
Autor Nachricht
uko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

Beiträge: 196
Dabei seit: 08.11.2006
Wohnort: Regensburg

Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
BeitragVerfasst: Mi 03.02.10 16:34  Antworten mit Zitat Beitrag melden
Hi,

ich habe aktuell grad das Problem, daß mein Programm bei seinem ersten Start auf einem Rechner eine Aktion ausführen muß (Windows XP und höher). Nur soll dies halt wirklich nur beim ersten Mal sein, unabhängig davon, welcher Benutzer angemeldet ist.
Wäre ja kein Problem, die Daten in der Registry unter Local_Machine/Software zu speichern, nur hat da der startende Benutzer ja keine Schreibrechte.

Wie könnte man das denn nun realisieren, daß die Aktion wirklich nur einmal auf diesem Rechner ausgeführt wird? (und nein, der Installer kann sie nicht ausführen). Es ist auch keine Datenbank vorhanden, wo man sich das merken könnte.

Gibt es da irgendwelche speziellen Verzeichnisse unter Windows oder Registry-Keys? Oder sonstige kreative Vorschläge?


Danke,
Ulrich
Private Nachricht sendenPosting in privater Nachricht zitieren
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star

Beiträge: 601
Erhaltene Danke: 9
Dabei seit: 04.09.2002
Wohnort: Neustrelitz

Win XP, Win7
Delphi 7 Enterprise
BeitragVerfasst: Mi 03.02.10 16:39  Antworten mit Zitat Beitrag melden
Hi,
Reg HKey_USERS oder eine ini.

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Private Nachricht sendenPosting in privater Nachricht zitieren
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Nussknacker 2009 - 1. Rang

Beiträge: 1912
Erhaltene Danke: 10
Dabei seit: 05.08.2006
Wohnort: MD

Win2000, IksPeh
Delphi 7, Turbo Delphi Exp.
BeitragVerfasst: Mi 03.02.10 16:46  Antworten mit Zitat Beitrag melden
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
Reg HKey_USERS

Hä? Du weißt, dass der lediglich der Knoten ist, wo alle andern User-Schlüssel drunter liegen, und die dann auf CURRENT_USER und CLASSES gemappt werden?

user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
oder eine ini.

Wo er die hinschreiben soll ist ja grade die Frage.

user profile iconuko hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es da irgendwelche speziellen Verzeichnisse unter Windows oder Registry-Keys? Oder sonstige kreative Vorschläge?

Was du suchst ist Suche in: Delphi-Forum.de, Delphi-Library.de GETSHELLFOLDER mit der Konstante CSIDL_COMMON_APPDATA.

Das ist weder speziell noch kreativ, sondern der Weg den man immer gehen sollte. Seit NT.

_________________
"[the ++ operator] is a parable on learning: even if you throw away the result, you still gain something" - mgedmin on Freenode (Außer: c=c++;)
Ich code EdgeMonkey - In dubio pro Setting-~==~- #ee-lounge in Freenode
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star

Beiträge: 601
Erhaltene Danke: 9
Dabei seit: 04.09.2002
Wohnort: Neustrelitz

Win XP, Win7
Delphi 7 Enterprise
BeitragVerfasst: Mi 03.02.10 16:59  Antworten mit Zitat Beitrag melden
Natürlich unter Reg HKey_USERS\Software\meine_software
Aber das hätt er dan auch gewusst :wink:
Er fragte nach speziellen Ordner, die normalen Ordner dürften ihm ja wohl bekannt sein :wink:

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!


Zuletzt bearbeitet von ALF am Mi 03.02.10 17:29, insgesamt 1-mal bearbeitet
Private Nachricht sendenPosting in privater Nachricht zitieren
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Nussknacker 2009 - 1. Rang

Beiträge: 1912
Erhaltene Danke: 10
Dabei seit: 05.08.2006
Wohnort: MD

Win2000, IksPeh
Delphi 7, Turbo Delphi Exp.
BeitragVerfasst: Mi 03.02.10 17:10  Antworten mit Zitat Beitrag melden
user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
Natürlich unter Reg HKey_USERS\Software\meine_software

Sowas gibts nicht.

_________________
"[the ++ operator] is a parable on learning: even if you throw away the result, you still gain something" - mgedmin on Freenode (Außer: c=c++;)
Ich code EdgeMonkey - In dubio pro Setting-~==~- #ee-lounge in Freenode
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star

Beiträge: 601
Erhaltene Danke: 9
Dabei seit: 04.09.2002
Wohnort: Neustrelitz

Win XP, Win7
Delphi 7 Enterprise
BeitragVerfasst: Mi 03.02.10 17:27  Antworten mit Zitat Beitrag melden
oh :autsch: :gruebel: was hab ich da geschrieben :oops:
verzeih :flehan:

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Private Nachricht sendenPosting in privater Nachricht zitieren
uko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

(Threadstarter)

Beiträge: 196
Dabei seit: 08.11.2006
Wohnort: Regensburg

Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
BeitragVerfasst: Fr 05.02.10 10:38  Antworten mit Zitat Beitrag melden
So, erst mal Danke für die Antworten!

Hab es mal mit Common AppData getestet. Zwar könnte da mein Programm von allen Usern aus lesend zugreifen, aber nicht schreibend auf eine bestehende Datei, die von einem anderen User angelegt wurde (genauer: der Installer legt die Datei an). Die Lösung ist nun, daß der Installer die Datei mit vollen Rechten für alle Benutzer anlegt.
Nur dann find ich es einen völligen Overkill, nur wegen einer Datei, die genau einmal beschreiben wird, Common Appdata mit der notwenigen Ordnerstruktur zu zumüllen. Also wird die Datei nun im Installationsverzeichnis direkt abgelegt und der Installer gibt dort für sie volle Rechte für jeden (was nebenbei den Vorteil hat, daß ich dann mehrere Versionen ohne Probleme parallel laufen lassen kann).

Wer eine bessere Lösung hat: her damit! :)


Grüße,
Ulrich
Private Nachricht sendenPosting in privater Nachricht zitieren
Luckie
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star

Beiträge: 11063
Erhaltene Danke: 2
Dabei seit: 30.08.2002


WindowsXP Professional SP2
BDS2006, VS C++ Express, Eclipse (Java), Flex (Flash, AS)
BeitragVerfasst: Fr 05.02.10 10:44  Antworten mit Zitat Beitrag melden
Speichere die Einstellungen im Programmverzeichnis oder unter HKLM und richte das Setup so ein, dass dies beim Setup passiert, denn das Setup muss sowieso der Administrator ausführen, dann kann er auch gleich die Einstellungen vornehmen.

_________________
Gruß Michael
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star

Beiträge: 488
Dabei seit: 29.04.2006


Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Fr 05.02.10 10:53  Antworten mit Zitat Beitrag melden
Wie wärs denn im verzeichniss von "All_USERS" ?
Da müsste man doch schreibrechte drauf haben, immerhin ist es für alle.
Private Nachricht sendenPosting in privater Nachricht zitieren
Astat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

Beiträge: 72
Dabei seit: 04.12.2009


Windows 2000
D6, D7, D2007, Lazarus
BeitragVerfasst: Fr 05.02.10 23:36  Antworten mit Zitat Beitrag melden
user profile iconuko hat folgendes geschrieben Zum zitierten Posting springen:

ich habe aktuell grad das Problem, daß mein Programm bei seinem ersten Start auf einem Rechner eine Aktion ausführen muß (Windows XP und höher). Nur soll dies halt wirklich nur beim ersten Mal sein, unabhängig davon, welcher Benutzer angemeldet ist.


Hallo uko, zuerst mal jein, für alle user nicht möglich.

user profile iconuko hat folgendes geschrieben Zum zitierten Posting springen:

Wäre ja kein Problem, die Daten in der Registry unter Local_Machine/Software zu speichern, nur hat da der startende Benutzer ja keine Schreibrechte.


Wie oben, eben für alle User nicht möglich.

user profile iconuko hat folgendes geschrieben Zum zitierten Posting springen:

Wie könnte man das denn nun realisieren, daß die Aktion wirklich nur einmal auf diesem Rechner ausgeführt wird? (und nein, der Installer kann sie nicht ausführen). Es ist auch keine Datenbank vorhanden, wo man sich das merken könnte.
Gibt es da irgendwelche speziellen Verzeichnisse unter Windows oder Registry-Keys? Oder sonstige kreative Vorschläge?


Also Nein da gibt es keinen speziellen Verzeichnise oder sonstwas, dass für alle User geht.
Natürlich mal abgesehen von MS-Security Bugs.
Wenn dies nur das betreffende Programm erledigen kann, und dies unter allen Usern funktionieren soll, fällt mir
folgendes dazu ein.

Es gibt zu deiner Applikation eine Service Application oder einen Treiber, mit dem das Hauptprogramm kommuniziert,
und diesem Anweisung gibt, einmalig dass zu erledigen, wass gemacht werden soll.
Dann kann unter HKLM ein Eintrag gesetzt werden und.. basta!

Ein Eintrag in der Atomtabelle des Systems könnte auch verwendet werden, jedoch geht diese INformation be einem Neustart
des Systems wieder verloren.

lg. Astat
Private Nachricht sendenPosting in privater Nachricht zitieren
Hobby-Programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star

Beiträge: 184
Dabei seit: 17.05.2006
Wohnort: München

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro
BeitragVerfasst: Sa 06.02.10 00:11  Antworten mit Zitat Beitrag melden
Nabend und Sorry für die blöde Frage, aber was zum Geier ist eine Atomtabelle?

LG Mario
Private Nachricht sendenPosting in privater Nachricht zitieren
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Moderator

Beiträge: 2865
Erhaltene Danke: 11
Dabei seit: 12.11.2005
Wohnort: Brackenheim

Win 7
F#, C# (VS2010)
BeitragVerfasst: Sa 06.02.10 00:52  Antworten mit Zitat Beitrag melden
Ich hätte auf ein Periodensystem getippt :mrgreen: , aber folgt man der von Google vorgeschlagenen Übersetzung: About Atom Tables.

_________________
>λ=
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Astat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

Beiträge: 72
Dabei seit: 04.12.2009


Windows 2000
D6, D7, D2007, Lazarus
BeitragVerfasst: Sa 06.02.10 01:05  Antworten mit Zitat Beitrag melden
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Ich hätte auf ein Periodensystem getippt :mrgreen: , aber folgt man der von Google vorgeschlagenen Übersetzung: About Atom Tables.


Ok, hat anscheined etwas für Verwirrung gesorgt, anbei Sample.


ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
var
ATOM: TATOM;
begin
ATOM := GlobalAddAtom(PChar('{D1F85078-F653-4AA7-AB07-765E94EBF349}'));
end;

procedure TForm1.Button2Click(Sender: TObject);
var
ATOM: TATOM;
begin
ATOM := GlobalFindAtom(PChar('{D1F85078-F653-4AA7-AB07-765E94EBF349}'));
if ATOM <> 0 then showmessage('ATOM allready set!');
end;



Lg. Astat
Private Nachricht sendenPosting in privater Nachricht zitieren
Hobby-Programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic star

Beiträge: 184
Dabei seit: 17.05.2006
Wohnort: München

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro
BeitragVerfasst: Sa 06.02.10 01:39  Antworten mit Zitat Beitrag melden
Danke für die Erklärung.
Habe zwar noch nie davon gelesen, aber ist ja echt ne interessante Sache.
Private Nachricht sendenPosting in privater Nachricht zitieren
uko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

(Threadstarter)

Beiträge: 196
Dabei seit: 08.11.2006
Wohnort: Regensburg

Win XP, VISTA, WIndows 7
Delphi 2007/2010 Prof
BeitragVerfasst: Sa 06.02.10 09:03  Antworten mit Zitat Beitrag melden
Hallo Leute!

Nochmals vielen Dank für die diversen Vorschläge / Erklärungen. Werd noch etwas rumspielen damit, aber sehr wahrscheinlich bleibt es bei der von mir vorher angedeuteten Lösung mit dem File mit allen Rechten im Programmverzeichnis.


viele Grüße,
Uli
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home