| 
| Autor | Beitrag |  
| uko 
          Beiträge: 220
 Erhaltene Danke: 1
 
 Win XP, VISTA, WIndows 7
 Delphi 2007/2010 Prof
 
 | 
Verfasst: Mi 03.02.10 15:34 
 
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
 |  |  |  
| ALF 
          Beiträge: 1085
 Erhaltene Danke: 53
 
 WinXP, Win7, Win10
 Delphi 7 Enterprise, XE
 
 | 
Verfasst: Mi 03.02.10 15:39 
 
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!
 |  |  |  
| Martok 
          Beiträge: 3661
 Erhaltene Danke: 604
 
 Win 8.1, Win 10 x64
 Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
 
 | 
Verfasst: Mi 03.02.10 15:46 
 
	  |  ALF hat folgendes geschrieben  : |  	  | 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?
 	  |  ALF hat folgendes geschrieben  : |  	  | oder eine ini. | 
 Wo er die hinschreiben soll ist ja grade die Frage.
 	  |  uko hat folgendes geschrieben  : |  	  | Gibt es da irgendwelche speziellen Verzeichnisse unter Windows oder Registry-Keys? Oder sonstige kreative Vorschläge? | 
 Was du suchst ist   GETSHELLFOLDER  mit der Konstante CSIDL_COMMON_APPDATA.
 Das ist weder speziell noch kreativ, sondern der Weg den man immer gehen sollte. Seit NT._________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
 |  |  |  
| ALF 
          Beiträge: 1085
 Erhaltene Danke: 53
 
 WinXP, Win7, Win10
 Delphi 7 Enterprise, XE
 
 | 
Verfasst: Mi 03.02.10 15:59 
 
Natürlich unter Reg HKey_USERS\Software\meine_software
Aber das hätt er dan auch gewusst    Er fragte nach speziellen  Ordner, die normalen Ordner dürften ihm ja wohl bekannt sein    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 16:29, insgesamt 1-mal bearbeitet
 |  |  |  
| Martok 
          Beiträge: 3661
 Erhaltene Danke: 604
 
 Win 8.1, Win 10 x64
 Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
 
 | 
Verfasst: Mi 03.02.10 16:10 
 
	  |  ALF hat folgendes geschrieben  : |  	  | Natürlich unter Reg HKey_USERS\Software\meine_software | 
 Sowas gibts nicht._________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
 |  |  |  
| ALF 
          Beiträge: 1085
 Erhaltene Danke: 53
 
 WinXP, Win7, Win10
 Delphi 7 Enterprise, XE
 
 | 
Verfasst: Mi 03.02.10 16:27 
 
oh        was hab ich da geschrieben     verzeih    Gruss ALf_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg,  währe dieses Forum leer!
 |  |  |  
| uko  
          Beiträge: 220
 Erhaltene Danke: 1
 
 Win XP, VISTA, WIndows 7
 Delphi 2007/2010 Prof
 
 | 
Verfasst: Fr 05.02.10 09:38 
 
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 |  |  |  
| Luckie Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Fr 05.02.10 09:44 
 
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. |  |  |  
| Niko S. 
          Beiträge: 566
 Erhaltene Danke: 10
 
 Win 7, Ubuntu
 Lazarus, Turbo Delphi, Delphu 7 PE
 
 | 
Verfasst: Fr 05.02.10 09:53 
 
Wie wärs denn im verzeichniss von "All_USERS" ?
Da müsste man doch schreibrechte drauf haben, immerhin ist es für alle.
 |  |  |  
| Astat 
          Beiträge: 75
 Erhaltene Danke: 1
 
 Windows 2000
 D6, D7, D2007, Lazarus
 
 | 
Verfasst: Fr 05.02.10 22:36 
 
	  |  uko hat folgendes geschrieben  : |  	  | 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.
 	  |  uko hat folgendes geschrieben  : |  	  | 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.
 	  |  uko hat folgendes geschrieben  : |  	  | 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 |  |  |  
| Hobby-Programmierer 
          Beiträge: 238
 Erhaltene Danke: 4
 
 Win XP Pro, Vista Ultimate Trial :o)
 D6 Pro, D7 Pro, Turbo, XE SE
 
 | 
Verfasst: Fr 05.02.10 23:11 
 
Nabend und Sorry für die blöde Frage, aber was zum Geier ist eine Atomtabelle?
 LG Mario
 |  |  |  
| Kha 
          Beiträge: 3803
 Erhaltene Danke: 176
 
 Arch Linux
 Python, C, C++ (vim)
 
 | 
Verfasst: Fr 05.02.10 23:52 
 
Ich hätte auf ein Periodensystem getippt    , aber folgt man der von Google vorgeschlagenen Übersetzung: About Atom Tables ._________________ >λ=
 |  |  |  
| Astat 
          Beiträge: 75
 Erhaltene Danke: 1
 
 Windows 2000
 D6, D7, D2007, Lazarus
 
 | 
Verfasst: Sa 06.02.10 00:05 
 |  |  |  
| Hobby-Programmierer 
          Beiträge: 238
 Erhaltene Danke: 4
 
 Win XP Pro, Vista Ultimate Trial :o)
 D6 Pro, D7 Pro, Turbo, XE SE
 
 | 
Verfasst: Sa 06.02.10 00:39 
 
Danke für die Erklärung.
Habe zwar noch nie davon gelesen, aber ist ja echt ne interessante Sache.
 |  |  |  
| uko  
          Beiträge: 220
 Erhaltene Danke: 1
 
 Win XP, VISTA, WIndows 7
 Delphi 2007/2010 Prof
 
 | 
Verfasst: Sa 06.02.10 08:03 
 
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
 |  |  |  |