Entwickler-Ecke

Off Topic - Liebe Leute, das geht doch nicht, ich bitte euch ...


Popov - Sa 30.04.05 14:34
Titel: Liebe Leute, das geht doch nicht, ich bitte euch ...
Wir haben inzwischen das Jahr 2005 und das ist fünf Jahre nach Einführung von Windows XP. Windows NT gab es schon vorher und da konnte man bereits anfangen zu üben. Aber jetzt wo es Windows XP gibt, da gibt es keine Ausreden mehr. Aber anscheinend kapieren es viele Programmierer nicht. Windows- und Programme-Verzeichnis sind tabu. Man schreibt doch keine Programme die etwas im Windows- oder Programme-Verzeichnis bei Ausführung des Programms schreiben oder ändern. Noch nie was von der Rechteverwaltung gehört? Mit einem Eingeschränktem Konto habe ich keine Schreibrechte im Windows- oder Programme-Verzeichnis. Dafür hat Microsoft das Anwendungsdaten-Verzeichnis erfunden. Muß man unbedingt eine INI schreiben, dann ist das Anwendungsdaten-Verzeichnis das einzige Verzeichnis wo ein Programm noch schreiben sollte, bzw. darf. Daß es bis heute keinen großen Knall gab, das liegt lediglich daran, daß die meisten User mit Administratorrechten arbeiten. Sollten sie aber nicht. Dürfen es vielerorts auch nicht. Viele machen es nicht ein mal mit Absicht, sondern weil Microsoft es so bei der Windows Installation so gesteuert hat. Bei der Installation wird nicht gefragt welchen Typ das Konto sein soll, Computeradministrator oder Eingeschränkter User, sondern es werden automatisch ohne Rückfragen nur Computeradministrator Konten erstellt. Und keiner weist nach der Installation einen drauf hin es später wieder umzustellen. Nein, man beläßt ein Konto wo der User alle Rechte besitzt. Und warum macht Microsoft das? Weil es blöde Programmierer gibt, die nicht kapieren, daß man nicht alles überall reinschreibt. Also die Windows 95 und Windows 98 Zeit könnte man noch verzeihen. Da wußte man es nicht besser. Aber das ist der Grund wieso Microsoft bei Windows XP keine Nägel mit Köpfen gemacht hat. Ok, die Zeit vor 2000 kann man noch verzeihen. Aber spätestens bei Windows XP muß man doch kapieren wo die Richtung geht. Zuerst eine kleine Entwarnung - ich bin nicht böse auf die Programmierer hier im Forum. Zumindest nicht hauptsächlich. Hier kann man noch sagen, daß viele einfach nur Hobbyprogrammierer sind und es nicht besser wissen. Kann mir aber einer sagen wieso eine kommerzielle Software, die 2004 geschrieben wurde, immer noch versucht etwas in das Windows- oder Programme-Verzeichnis zu schreiben? Haben die etwas nicht mitbekommen? Wieso knallt mir mein gekauftes Programm um die Ohren, weil es versucht im Programme-Verzeichnis eine INI Datei anzulegen? Was man bei Hobbyprogrammierern noch ... nein verzeihen nicht, aber da weiß man wenigstens wieso es so ist. Aber bei kommerziellen Programmierern habe ich kein Verständnis. Da kann ich nur sagen: diese Software funktioniert nicht! Für diese Software will ich mein Geld zurück. Diese Software wurde fehlerhaft programmiert. Das ist kein Bug, denn man vielleicht mit dem Satz: keine Software kann fehlerfrei programmiert werden. Dieses Programm wurde trotz besseren Wissens falsch programmiert. Das ist so als ob man den Auto-Blinker nicht orange, sondern grün machen würde. Eben falsch.

Auch wenn sich das hier nicht an die Programmierer dieses Forums speziell richtet, sondern in erster Linie gegen falsch programmierte Kommerzsoftware, so bitte ich alle hier in Zukunft drauf zu achten. Ich will mich hier nicht ausschließen. Zu schnell schreibt man etwas in das eigene Programmverzeichnis, aber das sollte nicht sein. Dafür gibt es entweder die Registry, wenn es sich um INI Informationen handelt, oder das Anwendungsdaten-Verzeichnis.

In diesem Sinne - macht es besser als die Anderen ;)


Heiko - Sa 30.04.05 14:57

user profile iconPopov hat folgendes geschrieben:
Dafür gibt es entweder die Registry, wenn es sich um INI Informationen handelt, oder das Anwendungsdaten-Verzeichnis.

Also ich versuche inzwischen nix mehr in die Registry zu schreiben, da ich damit schon schlechte Erfahrungen gemacht habe. Denn die Programme die bei mir zu Hause ordentlich funktionieren, funktionieren auf den Schulrechnern nicht mehr, da ich keine Rechte habe in diesen zu schreiben. Außerdem braucht Windwos länger zum hochfahren, wenn die Registry immer größer wird. Der größte Nachteil bei der Registry ist aber, wenn dumme Anwender, zum löschen einer Anwendung, nicht die Uninstall-Funktion nehmen, sonder nur den Programmverzeichnisordner löschen, das immer Reste in der Registry bleiben, und damit den PC vollmüllen.

user profile iconPopov hat folgendes geschrieben:
Bei der Installation wird nicht gefragt welchen Typ das Konto sein soll, Computeradministrator oder Eingeschränkter User, sondern es werden automatisch ohne Rückfragen nur Computeradministrator Konten erstellt.

Hast du dir mal Gedanken gemacht, was passieren würde, wenn Windows nur einen eingeschränkten User erstellen würde?
1. Keiner könnte mehr etwas installieren, da keiner die Rechte hat sich zum Admin "umzubennen" (es gibt ja kein Admin auf dem Rechner)
2. Nach der Installation von Windows sind nun einmal immer die Admins dran, da sie ja Windows auch installiert haben.


hansa - Sa 30.04.05 15:23

@Popov : ändere bitte Deinen Titel, siehe Richtlinien. :lol:

Das da paßt mir genau richtig in den Kram. :mrgreen: Ich habe folgendes vor : mein Programm kommt in einen Ordner. Z.B. "C:\MeinProg" Es gibt eine EXE, 1 INI und eine DB, die in ein Unterverzeichnis kommen soll. Dann noch 2 Interbase-DLLs die in das MeinProg -Verzeichnis müssen. Ich habe auch nicht vor, wie von Mickysoft gewünscht, die Registry zu vergewaltigen. Deshalb die INI.

Wer hat gegen dieses Vorhaben irgendwas einzuwenden ? Ich bin davon ausgegangen, daß derjenige, der die CD installieren soll, nicht nur R/O Zugriff hat. Trotzdem befürchte auch ich, daß es bei der Installation insbesondere auf Netzwerkrechnern mit eingeschränktem Zugriff Probleme geben könnte. Hintergrund ist, daß ich mind. 5000 CDs brennen lassen muß. Da kann ich mir keine Master-CD leisten, die nicht überall geht.

[EDIT] Ich habe einen Text vorbereitet (Disclaimer) in dem genau steht, daß keine Registry Einträge gemacht/geändert werden und eine "Deinstallation" des Programmes lediglich erfordert, den Ordner zu löschen, in dem es gespeichert ist. Als ich das einem zeigte, da hat er mich schief angeguckt :shock: und hatte nicht verstanden, warum der Rechner nicht neu gestartet werden muß.


wulfskin - Sa 30.04.05 15:56

Hallo Popov,

danke für diesen Aufschrei! Ich selber mache diesen Fehler (abspeichern im Programmverzeichnis) schon seit jeher und bin nie auf die Idee gekommen, dass da etwas nicht stimmt.
Leider kommt man als Windows-Benutzer nur wenig mit den Benutzerrechten in Kontakt (anders als bei Linux) und deshalb mag dies vielleicht dadurch zu erklären sein, dass diese Fehler noch gemacht werden.
Ich jedenfalls werde mir das jetzt merken und zukünftig diesen Fehler vermeiden!

Danke für die klaren Worte,
Hape


Neo Nemesis - Sa 30.04.05 16:26

Ich persönlich mag es nicht wenn Programme meine Registry oder meine Anwendungsdaten-Ordner zu ballern der ist schon 109 MB (114.724.864 Bytes) groß es nervt mich wenn ich stundenlang meinen Computer durchsuchen muss weil die Daten eines Programmes über die ganze Festplatte verstreut sind

Ich habe nichts gegen Benutzer Kompfort aber wenn ich ein Programm deinstaliere muss ich noch ewig alle Restdaten vom Computer suchen
und warum wollen alle Programme in den Ordner C:\Programme da braucht man doch wirklich ewig was zu finden
Ich kann solche Probleme manuell korrigieren die meisten "einfachen" Computer-User aber nicht

Hier sollte man mal nachhaken und nachbessern


fvolk - Sa 30.04.05 19:19

Prinzipiell bin ich absolut auf deiner Seite.

Allerdings frage ich mich nur, warum Microsoft mit dem .NET-Framework XML-Konfigurationsdateien eingeführt hat, die wiederum im Installationsverzeichnis des jeweiligen Programmes liegen. Geht das alles unter dem Banner "Installation mit xcopy"? Das hatten wir auch schon unter DOS (und da hat's - nebenbei erwähnt - ziemlich gut funktioniert).


Amiga-Fan - Sa 30.04.05 20:21

Popov ich stimme dir zu, aber es ist schon komfortabler nur ein Verzeichnis entfernen zu müssen um ein Programm zu deinstallieren...


Phobeus - Sa 30.04.05 20:48

Ohje... was hat es den mit Komfort zu tun? Ich pflichte Popov absolut zu. Ein Programm, dass heutzutage noch in seinem eigenen Verzeichnis seine Konfiugration ablegt oder gar in einem Systemverzeichnis gehört vom System am besten gleich über den Jordon geschickt. Wir leben im Zeitalter von Multiuserbetriebsysteme (ja, auch Windows) und dort ist dies nur sinnvoll zu gewährleisten, wenn eben nicht alles in einem Ordner geschrieben wird und jeder die Einstellungen anderer überschreiben kann oder fast noch fataler: Seine aktuellen Benutzerdaten einsehen. Frage mich wirklich ernsthaft, wie die Autoren solcher Programme Ihre Einstellungen bei einem Backup sicher... Dokumente und Einstellungen ist in jedem Fall der zu favorisierende Ort, selbst wenn man nicht die Registry nutzen will. Es gibt absolut keine Entschuldigung (mir fällt wirklich absolut keine aus), warum man dies nicht tun sollte. Definitiv sehe ich es auf jeden Fall auch so, dass die Professionalität eines Projekt ziemlich stark unter sowas leidet.


Amiga-Fan - Sa 30.04.05 20:56

ich finde halt die Idee gut das man nur ein Verzeichnis entfernen muß um alle Daten eines Programms zu entfernen.


Popov - Sa 30.04.05 21:07

Eigentlich sollte das keine Einleitung in eine Diskusion sein, sondern nur ein kurzes Statement. aber wenn sich schon einige genötigt fühlen ihr falsches Verhalten zu verteidigen, dann antworte ich drauf.

@Heiko

Ich bin kein Mensch der alles weiß, aber wenn mir schon einer etwas mitteilt, dann versuche ich nicht noch mit meine Unwissenheit zu glänzen. Du schreibst nichts in die Registry, weil du damit schlechte Erfahrung gemacht hast? Schön, aber das ist nicht dein Bier darüber zu entscheiden. Es gibt Richtlinien für Windows XP und an die sollte man sich halten. Dazu gehört auch, daß man seine Ini-Infos in die Registry schreibt. Durch die paar Infos wird die Registry schon nicht groß. Es sind eher die Leute, die fragen ob sie ihre 40MB Bilder in die Registry schreiben sollen, weil sie so am besten ihre Bilder unterbringen können. Ich kann mich zumindest an eine Diskusion hier im Forum erinnern wo es einer gefragt hat. Aber du hast eine Registry, die inzwischen 100MB groß ist? Dann sollte es dich freuen, daß es einen User Teil gibt. Eigentlich sollten Programme alles in die User Registy schreiben. Sollte die User-Reg versaut werden, dann reicht ein Kontowechsel und schon hast du eine nigelnagelneue User-Reg. So einfach geht das. Es ist der HKCU Teil der Registry wo man seine Infos schreiben sollte. Und wenn ich ehrlich sein soll, dann ist es der Teil wo es am leichtesten ist zuzugreifen. Nirgendwo kann man mit so wenig Aufwand etwas reinschreiben. Für alles andere muß man sich etwas Mühe geben. Deinstallationsroutinen hin under her, der HKCU bereich ist der einzige Bereich wo ein Programm schreibend und ohne Adminrechte zugreifen sollte.

Du beschwerst dich über Programme die bei dir zu Hause funktionieren und nicht in der Schule? Das ist einfach. Wenn du wirklich in die Registry geschrieben hast, dann hast du wahrscheinlich versucht in den Breich zu schreiben wo du nichts zu suchen hast. Registry ist eigentlich der Bereich wo man die kleinsten Probleme mit seinen Ini Infos hat, denn der HKCU Teil gehört dem User. Wenn du also da mit deinen Programmen deine Probleme hast, dann liegt das nur daran, daß du es falsch gemacht hast. Der Grund wieso deine Programme in der Schule funktioneieren ist der, daß du deine Programme in der Schule nicht im Programme Verzeichnis laufen läßt, sondern in deinem User-Bereich. Und da hast du Schreibrechte. Aber da installiert man seine Programme sonst nicht.

Mit der nächsten Frage hast du eigentlich den Vogel abgeschossen. Ich meine die Frage wo du fragst ob ich mir Gedanken gemacht habe, was passieren würde, wenn Windows nur einen eingeschränkten User erstellen würde? Ich verstehe nicht das du dir da überhaupt darüber Gedanken gemacht hast. Es ist so als ob du galubst, daß ich etwas wiedernatürliches hier mache. Jedes Windows System hat automatisch das Adminstrator Konto. Dises Konto braucht man nicht erstellen und es kann auch nicht gelöschte werden. Dieses Konto ist automatisch da. Dieses Konto krigst du auch nie in ein Eingeschränktes Konto geändert. Somit besteht nie das Problem, daß du plötzlich nichts installieren kannst. Und es stimmt nicht, daß es ein Naturgesetz ist, daß nach einer Windowsinstallation nur Adminkonten sein müssen. Es liegt daran, weil Microsoft es so steuert. Die Begründung habe ich bereits im ersten Beitrag geliefert. Grund sind die Programmierer die falsch programmieren. Microsoft will keinen Ärger mit nicht funktionierenden Programmen die für Windows 9x programmiert wurden. Aber warum halten sich Programmierer die für XP programmieren nicht an die richtigen Regeln? Darum geht es hier. Bei der Windowsinstallation kann der Administrator gleich weitere Konten erstellen. Spätestens nach der Installation kann er aus diesen Eingeschränkte Konten machen.

@hansa

Der Titel ist schon richtig. Es ist mit Absicht so gewählt. Er zeigt, daß in dem Beitrag um etwas geht was falsch gemacht wird. Jede andere Titel würde das Problem nicht genug richtig beschreiben könnnen. Aber ich bin offen für Vorschläge.

Weiterhin sagst du, daß du ein Programm hast das eine Datenbank, INIs usw. hat. Ok, aber das gehört nicht in ein Programme Verzeichnis. Und direkt unter C solltest du auch keine Schreibrechte haben. Für dich und deine Datenbank ist das Anwendungsdaten Verzeichnis. Da kannst du schreiben wie du willst. Kazaa Lite hat dort auch seine Datenbank. Outlook schreibt da auch seine EMail Datenbank. Alle machen es so. Zumindest die, die es richtig machen.

Aber du gehst von falschen Voraussetzungen. Du sagst, daß derrjenige der die CD installieren darf, wohl auch alle Rechte hat. Ich installiere auch per Admin. Aber arbeiten tue ich im eingeschränktem Konto. Ich könnte deine Datenbank lesen, aber nicht schreiben. Es ist also in deinem Interesse es gleich richtig zu machen.

Es ist zwar schön, daß man ein Programm durch einfaches löschen des Ordners komplett aus dem System entfernen kann, aber mit Eingeschränktem Konto kann man nichts aus dem Programme Ordner löschen.

@wulfskin

Auch ich behaupte nicht alles immer richtig zu machen, aber seit dem mit das Problem bekannt ist, mache ich es anders. Zufällig benutze ich sein zwei Jahren nur noch meine EasyIniAppExe (zu finden auch in OpenUnits) um in die INIs etwas zu schreiben. Somit habe ich keinen direkten Zugriff auf die Programm INI. Der Vorteil bei meiner Units ist, daß ich durchaus wie üblich beim programmieren eine einfache INI im Ordner nutzen kann. Spätestens aber wenn das Programm in die Welt muß, reicht es nur die Unit austutauschen und schon schreibt sie in die Infos in die HKCU Teil der Registry. Somit habe ich eigentlich schon indirekt den Fehler nicht gemacht. Meine Programme scheiben keine Infos in den Programme Ordner. Aber ich gebe offen zu, daß ich nie der große Feind der Registry war. Deshalb habe ich schon immer in die Registry geschrieben. Und für große Sachen gibt es den Anwendungsdaten Ordner ;)


hansa - Sa 30.04.05 21:20

user profile iconPopov hat folgendes geschrieben:
Es ist zwar schön, daß man ein Programm durch einfaches löschen des Ordners komplett aus dem System entfernen kann, aber mit Eingeschränktem Konto kann man nichts aus dem Programme Ordner löschen...


Popov, man kann es dann auch wohl kaum installieren. Wer keine Schreibrechte hat, der wird wohl kaum was löschen konnen. 8) Der Rest der Frage ist völlig offen.


Popov - Sa 30.04.05 22:08

user profile iconhansa hat folgendes geschrieben:
Popov, man kann es dann auch wohl kaum installieren. Wer keine Schreibrechte hat, der wird wohl kaum was löschen konnen. 8) Der Rest der Frage ist völlig offen.


Die Regel ist, daß man in Programme Verzeichnis keine Schreibreichte hat. Zumindest nicht, wenn man mit Eingeschränktem Konto arbeitet, was die Regel sein sollte. Programme die im Programme Verzeichnis abgelegt sind, werden mit Administratorrechten installiert und deinstalliert. Dazwischen arbeitet man mit Eingeschränkten Rechten und die haben keine Schreibrechte. Somit wiederspricht sich dein Gedanke. Wenn du alles in einem Ordner haben willst, inc. INIs, dann hast du zwei Möglichkeiten. Der User arbeitet mit Adminrechten und du hast keine Probleme. Der User arbeitet mit eingeschränkten Rechten, was die Regel sein sollte. In diesem Fall kann die INI in deinem Ordner nicht aktualisiert werden und du hast ein nichtfunktionierendes Programm. Also vergiß das mit dem einem Ordner. Das kann nur klappen wen du keine INIs speicherst.

Aber versuch hier keine Übezeugungsarbeit zu leisten. Deine Gedanken sind nicht richtig. Ein wichtiger Punkt für das XP Zertifikat ist, daß du dich an diese Regeln hälst.


hansa - Sa 30.04.05 22:30

Popov, Dein "Programm-Verzeichnis", ist damit das von Windows gemeint, also das User-Verzeichnis ?? Oder was ist sonst damit gemeint ? Ich gehe mal davon aus, daß jemand, der ein Programm installieren soll, über gewisse Schreibrechte verfügen muß. Der Verzeichnisname interessiert mich nur am Rande. Ebensowenig wie der Laufwerksbuchstabe. Um diese Sachen aber zu speichern brauche ich die INI. Bei der Registry reagieren die Leute zunehmend allergisch und installieren Programme im Zweifelsfall lieber nicht. M$ kann sich sein XP-Zertifikat von mir aus sonstwo hin stecken. Es ist fast besser so was gar nicht zu haben. 8) Desweiteren lese ich hier nur, wie es nicht gehen sollte. Vorschläge so was optimal zu lösen, die felen.


Popov - Sa 30.04.05 23:33

Mit Programme Verzeichnis (auch wenn ich micht verschrieben habe und "Programm Verzeichnis" geschrieben habe) meine ich das "C:\Programme" Verzeichnis. Mit Windows Verzeichnis meine ich das "C:\Windows" Verzeichnis (oder auch abgeänderte Namen).

Aber du verstehst es falsch. Mir geht es vor allem hier um Software die für Geld zu haben ist. Die müssen es richtig machen.

Hansa, du verstrickst dich hier in etwas wo du nicht zum Schluß Recht behällst. Es ist uninteressant ob es User über Registry Einträge ärgern. Ich lasse keine Programme drauf die im eingeschränktem Zustand schreiben wo sie nicht schreiben dürfen. Hast du schon mal gehört, daß Linux so ein sicheres System ist und Windows alles reinläßt? Weißt du wer daran schuld ist? Du. Du mit deiner Einstellung, daß du es so machst wie du es willst und nicht so wie es sein soll. Im eingeschränktem Modus können keine Schädlinge aus dem Internet bei Surfen das System befallen. Ist fast unmöglich, und wenn es einem gelingt, dann ist er nach dem Neustart inaktiv. Windows XP bietet Möglichkeiten die nur dem Linux zugesprochen werden. Aber Linux hat es von Anfang an richtig gemacht. Administratorkonto und Eingeschränktes Konto. Basta. Da wird nicht darüber diskutiert. Windows XP bietet die gleichen Möglichkeiten, ist aber nicht so streng bei der Kontovergabe. Der Grund sind Leute wie du, die meinen sich nicht an Konventionen halten zu müssen und ihre Sachen dort speichern wo die wollen. Microsoft ist gezwungen das System so anzupassen, daß die delitantisch programmierten Programme dennoch funktionieren. Die Antwort ist, daß man die User mit Adminrechten arbeiten läßt und die Leute sich deshalb ihre Systeme mit Trojanern zumüllen. Wenn also einer einen Trojaner beim Surfen abkriegt, dann bist du schuld. Weil du eben die Leute zwingst im Adminmodus zu arbeiten, damit deine Programme funktionieren.

Dabei ist alles so einfach. Hier gehe ich auf deine Behauptung ein, daß ich hier nur schreibe wie es nicht sein soll, sonst aber keine Vorschläge liefere. Registry ist die Möglichkeit. Was glaubst du wieso Microsoft die eingefügt hat? Damit eben die INIs angeschaft werden und man das System endlich sicher machen kann. Die Registry teilt sich in fünf Bereiche und es gibt nur einen Bereich in den mit eingeschränkten Rechten geschrieben werden kann. Diesen Bereich kannst du nicht zumüllen. Und wenn, dann ist es leicht wieder herzustellen. Es ist uninteressant ob Leute was gegen die Registry haben. Dafür ist die Registry da. Wer das nicht einsieht ist Hobbyprogrammierer und seine Programme gehören nicht auf die Rechner.

Und für den Fall, daß du auf deine INI nicht verzichten willst, dann habe ich dir mindestens 10 mal gesagt, daß es den Anwendungsdaten Ordner gibt. Da kannst du passend zu deinem Programm einen Unterordner erstellen und deine INI reinpacken. Es gibt keine Ausrede, daß es nicht geht. Es gibt nur die Unwissenheit wie es gamacht wird.


Delete - Sa 30.04.05 23:54

Meine Meinung:

Ein gut konfiguriertes Windows erlaubt es nur Hauptbenutzern- und Administratoren, Programme zu installieren. Und ich rede hier von typischen Setups. .NET-Anwendungen sind mit der neuen Strategie (einfach kopieren und starten) ein Sonderfall, aber man darf nun nicht so tun, als könne man im .NET Framework nicht auch auf andere Verzeichnisse zugreifen. :roll: SharpDevelop bspw. speichert seine Einstellungen standardmäßig auch im "Anwendungsdaten"-Ordner im Benutzerprofil. Im Gegensatz zu typischen Windows-Programmen benutzt es von sich aus aber keine Registryeinträge. Das liegt nur am Setup, das sich an die Vorgabe (Deinstallation in HKLM) halten muss/will, und das auch die Dateiendungen registriert.

Wie dem auch sei, ein Setup funktioniert auf einem vernünftigen System also nur mit entsprechenden Rechten. Daher kann man die grundlegenden Schreibrechte in alle wichtigen Ordner voraussetzen. Die mir bekannten Setuptools (ja, auch die billigen) unterstützen die Rechteabfrage und beenden sich ggf. auch selbst.

INI- o.ä. Konfigurationsdateien im Programmordner sind nur sinnvoll, wenn es sich um allgemeine Einstellungen handelt, die zudem nur lesbar sind. Wie gesagt, mit eingeschränkten Benutzerrechten könnte man so eine INI (wenn sie sich bspw. in "Programme\Meine Anwendung" befindet) auch gar nicht ändern. Ansonsten gehören Konfig-Dateien in das Benutzerprofil, zweckmäßig ist eben der "Anwendungsdaten"-Ordner, der ja dafür vorgesehen ist. Kleinere Einstellungen kommen in die Registry, ebenfalls in den benutzerabhängigen Schlüssel HKCU. Auf die Weise ist sichergestellt, dass jeder User die Einstellungen des Programms nach eigenem Gusto ändern kann.

Die angesprochene Säuberung noch kurz: Wenn der Admin die Anwendung deinstalliert, dann werden dabei in den meisten Fällen auch gleich seine persönlichen Einstellungen gelöscht, weil das Setup ja auf sein Benutzerprofil bzw. auf seinen HKCU-Zweig der Registry zugreifen kann. Zugegeben, die Einstellungen der anderen User bleiben zurück.
Und da möchte ich Borland ins Spiel bringen: Auf deren CD befindet sich ein Cleaning-Tool, das unter jedem Benutzerkonto gestartet werden kann, und das nur die Benutzereinstellungen entfernt. Wie gesagt: Für die Deinstallation ist der Admin verantwortlich. Aber das Tool kann jeder Benutzer nehmen, um seine Einstellungen zu löschen. So ein Tool kann man IMHO recht schnell schreiben, denn jeder Entwickler dürfte wohl am besten wissen, welche Dinge zu entfernen sind.


hansa - So 01.05.05 01:14

Tja, das da bringt mich keinen Meter weiter. Warum M$ und auch Popov empfehlen, die Registry zu verunstalten bzw. aufzublähen ist mir nicht ganz klar. Wozu soll das gut sein, zumindest gegenüber einer simplen Textdatei in einem eigenen Verzeichnis ?


Popov - So 01.05.05 03:50

user profile iconhansa hat folgendes geschrieben:
Tja, das da bringt mich keinen Meter weiter. Warum M$ und auch Popov empfehlen, die Registry zu verunstalten bzw. aufzublähen ist mir nicht ganz klar. Wozu soll das gut sein, zumindest gegenüber einer simplen Textdatei in einem eigenen Verzeichnis ?


Hansa, ich werde nicht mehr groß drauf eingehen, dann wenn du es bisher nicht verstanden hast, dann weiß ich nicht was du noch erwartest. Mit deiner Einstellung und trotz deiner enormen Beitragspunkte, zeigst du, daß du nur ein Hobbyprogrammierer und Bastler bist. Das muß nichts schlimmes sein, aber es zeigt, daß du anscheinend etwa sfür dich programmieren willst und mehr nicht. Irgendwann willst du feststellen, daß deine Programme nicht richtig funktionieren und dann wird der Groschen fallen. Nur erinnere dich dann bitte, daß der Fehler bei dir liegt und versuch die andere Person nicht dazu zu überreden als Admin zu arbeiten. Windows XP ist ein relativ sicheres System. Die Windows 9x Zeit ist mit XP endlich vorbei und zum ersten mal bietet Microsoft für den Heimbereich ein relativ sichers System. Damit meine ich ein System in dem keiner unbefugt auf deine Daten zugreifen kann, aber auch, daß ein ausgeführter Schädling keinen großen Schaden anrichten kann. Das alles kann Windows XP inzwischen. Du kannst auf eine böse Seite im Internet gehen ein OK in ein Feld eingeben, und dennoch wird bei dir kein Dialer installiert. So sicher und stark ist Windows XP. Da braucht man keine Extra Programme.

Voraussetzung dafür ist aber, daß man mit eingeschränktem Rechten arbeitet. Diese beschneiden deine Rechte beim Arbeiten und machen dadurch das System sicher. Was du nicht darfst, daß darf auch der Schädling nicht. Zum 20'sten Mal: im Eigeschränktem Konto, was üblich sein sollte und in Firmen und Schulen üblich ist, hast du kein Schreibzugriff auf das C:\Programme Verzeichnis. Somit kannst du auch deine INIs nicht ändern. Wenn es bei dir zu hause funktioniert, dann bedutet es, daß du als Andmin arbeitest, was du nicht tuen solltest, oder deine Programme in einem extra Verzeichnis hast. Jetzt verstanden? Das ist keine Meinung von Popov und Microsoft, sondern die Regeln an die sich die Programmierer halten müssen. Und glaub mir, unter Windws XP war Microsoft noch locker mit den Rechten. Spätestens mit Longhorn machts sie aber den Laden dicht. Wer es nicht geschaft hat innerhalb von 6 Jahren seine Programme so weit zu bringen, daß sie keine Adminrechte für die Ausführung brauchen, dessen Programme werden nicht mehr funktionieren.

user profile iconhansa hat folgendes geschrieben:
Tja, das da bringt mich keinen Meter weiter. Warum M$ und auch Popov empfehlen, die Registry zu verunstalten bzw. aufzublähen ist mir nicht ganz klar. Wozu soll das gut sein, zumindest gegenüber einer simplen Textdatei in einem eigenen Verzeichnis ?


Dieser Kommentar ist eigentlich eines Kindes wert, aber nicht eines Programmieres. Wozu soll das gut sein? Damit User sicher mit ihrem Windows arbeiten können. Wie oft willst du das eigentlich noch hören?

Ich würde dir empfehlen dir dein Benutzerkonto anzugucken. Dann lernst du viel.

Moderiert von user profile iconTino: Hinweis auf die schulische Ausbildung entfernt.


Delete - So 01.05.05 09:18

Und wenn man doch Admin-Rechte für sein Programm braucht, dann prüft man diese und verweigert ggf. die Ausführung des Programms. Abgesehen davon gibt es seit Windows 2000 die Möglichkeit, mit eingeschränkten Rechten zu arbeiten, aber Programme trotzdem als Admin starten zu können. Ab Windows XP ist der Eintrag "Ausführen als" im Kontextmenü (Explorer) eines Programms immer zu sehen, bei Windows 2000 muss man die Shift-Taste drücken. Oder man bemüht das Kommandozeilentool runas.exe.

Die Rechteprüfung für Delphi wurde hier im Forum schon mal Suche in: Delphi-Forum, Delphi-Library ERW?HNT. In .NET ist sie sogar noch simpler (mit Dank an sakura):

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
using System.Security.Principal;
using System.Threading;


AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsPrincipal wp = (Thread.CurrentPrincipal as WindowsPrincipal);
if(!wp.IsInRole(WindowsBuiltInRole.Administrator) && !wp.IsInRole(WindowsBuiltInRole.PowerUser)) {
  Console.WriteLine("You need Administrator or Power user privileges to run this application.");
  return;
}

In der DP gibt´s die Delphi-Suche in der Delphi-PRAXiS VARIANTE, die (mal von der Syntax abgesehen) exakt nach dem gleichen Prinzip funktioniert.


BenBE - So 01.05.05 19:07
Titel: Re: Liebe Leute, das geht doch nicht, ich bitte euch ...
user profile iconPopov hat folgendes geschrieben:
Wir haben inzwischen das Jahr 2005 und das ist fünf Jahre nach Einführung von Windows XP. Windows NT gab es schon vorher und da konnte man bereits anfangen zu üben. Aber jetzt wo es Windows XP gibt, da gibt es keine Ausreden mehr. Aber anscheinend kapieren es viele Programmierer nicht. Windows- und Programme-Verzeichnis sind tabu. Man schreibt doch keine Programme die etwas im Windows- oder Programme-Verzeichnis bei Ausführung des Programms schreiben oder ändern. Noch nie was von der Rechteverwaltung gehört?

Also zumindest für meinen Teil: Ich hab davon schon etwas gehört, muss aber sagen, dass viele dieses feine Feature noch nicht entdeckt haben. Aber eine zu restriktive Anwendung der Einstellungen ist für viele Systeme nicht praktikabel. Von daher versuch ich mich zwar weitestgehend daran zu halten, dass man nichts in's Programme-Verzeichnis bei kommperziellen Dingen schreib, zugeben, dass meine kleinen Tools auch fehlerfrei laufen, wenn Sie dies nicht können.

user profile iconPopov hat folgendes geschrieben:
Mit einem Eingeschränktem Konto habe ich keine Schreibrechte im Windows- oder Programme-Verzeichnis.

Udn das auch aus gutem Grund: Viele Viren modifizieren Dateien in diesen Verzeichnissen, um Schaden anzurichten und sich auszubreiten. Daher ist das auch nur logisch ...

user profile iconPopov hat folgendes geschrieben:
Daß es bis heute keinen großen Knall gab, das liegt lediglich daran, daß die meisten User mit Administratorrechten arbeiten.

Dem muss ich eindeutig wiedersprechen, da es keinen brauchbaren Weg gibt, mit wenig Aufwand das Verzeichnis auszulesen bzw. zusätzlicher Aufwand entsteht, wenn man es macht.
Wenn ich eine TINIFile erstelle, landet diese (alten Win3.11-Zeiten sei Dank) im Windows-Verzeichnis (sofern kein Pfad angegeben ist). Möchte man nun die INI in ein anderes Verzeichnis verschieben, so wird aus der kurzen Zeile

Delphi-Quelltext
1:
INI := TINIFile.Create('meine.ini');                    

plötzlich der lange Text

Delphi-Quelltext
1:
INI := TINIFile.Create(IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + 'meine.ini');                    

und wenn man schonmal dabei ist, auch schnell

Delphi-Quelltext
1:
TINIFile.Create(IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + ExtractFileName(ChangeFileExt(Application.ExeName, '.ini')));                    

Von übersichtlichem Coding kann da nicht mehr die Rede sein ...
Gut. Ist alles in eine Funktion auslagerbar, aber wirklich vorteilhaft ist das doch auch nicht, dass man an tausend Stellen in seinem Programm suchen muss, um seine Verwaltungsdinge zu ändern:
- Funktion zum auslesen von Systemverzeichnisnamen
- Funktion zum ermitteln des Anwendungsdaten-Verzeichnisses
- Funktion zum ermitteln des INI-Dateinamens für systemweite Einstellungen
- Funktion zum Ermitteln des INI-Dateinamens für userspezifische Zugriffe
- Funktionen zum Lesen und Schreiben der Daten
Da wird der Source zum Verwalten der Dinge sehr schnell sehr umfangreich. Ich glaube, da sollte mal endlich ein einheitlicher Standard gebaut werden, der dies sehr stark vereinfacht und INI-Dateien automatisch in den Anwendungsdatenordner anlegt, am besten mit angabe lokal oder global ...
user profile iconPopov hat folgendes geschrieben:
Sollten sie aber nicht. Dürfen es vielerorts auch nicht.

Wegen dem "sollten Sie nicht" muss ich Dir zustimmen, obwohl viele Viren heutzutage auf Sicherheitslücken im System aufsetzen, wo es sowieso uninteressant ist, ob der User nun DAU- oder Admin-Rechte hat. Ein unsicheres System ist immer anfällig, da ändert auch das Arbeiten mit weniger Rechten nicht viel.
Das "dürfen es vielerorts nicht" stimmt so nicht ganz: Ich kenn selber in unserer Schule einige Rechner, da kann von CD gebootet werden. Wenn ich bösartig wäre, würde ich meine Boot-CD (Ob BartPE oder Knoppix ist egal) und Dateien im System verändern. Da nützen dann auch Sicherungen an den Betriebssystemrechten nichts. In der Schule kann sich praktisch jeder anmelden, der die Enter-Taste betätigen kann. Selbst um auf's Internet zuzugreifen ist nichts weiter nötig... Und wegen keine Programme installieren: Auf den Rechnern ist zu einem großen Teil Firefox drauf und das nicht etwa, weil die Admins das installiert haben, sondern weil die Setups so Userfreundlich sind; Wenn ich in C:\Programme\Firefox nicht schreiben kann, installier ich's eben in C:\Firefox - Ganz einfach eben ... Die Warnung "Sie sind kein Admin" kann man da getrost ignorieren. Die einzige Hürde, warum noch keine Tauschbörsen-Programme daas Schulnetzwerk im großen Stil nutzen, ist einzig die Tatsache, dass der Proxy den CONNECT-Befehl komplett blockt und HTTP-Requests auch nur zu Port 21 und 80 möglich sind. Wenn man aber die Liste mit den Admin-Konten oder Passwort einsehen kann, ist es nur eine Frage der Zeit, eh das Passwort ausgelesen und im Kreise der Schüler weitergegeben ist. Von daher bringt das Rechte-System absolut nichts, wenn sich weder die Hersteller, noch Systemverantwortlichen wirklich einig sind, wie das ganze ablaufen soll.

user profile iconPopov hat folgendes geschrieben:
Viele machen es nicht ein mal mit Absicht, sondern weil Microsoft es so bei der Windows Installation so gesteuert hat. Bei der Installation wird nicht gefragt welchen Typ das Konto sein soll, Computeradministrator oder Eingeschränkter User, sondern es werden automatisch ohne Rückfragen nur Computeradministrator Konten erstellt. Und keiner weist nach der Installation einen drauf hin es später wieder umzustellen.

Dass die Einstellungen im Windows-Setup dürftig sind, ist doch nun schon allgemein bekannt; genauso wie die Tatsache, dass 90% der Windows-Anwender DAUs oder DAUs mit Fortschritt sind. Microsoft setzt somit im Setup auch gar nichts weiter daran, das zu Ändern, weil jede Erweiterung des Setups nur unnötig die Installation verkomplizieren würde. Setz mal nen DAU an ne Linux-Installation und guck, was dabei rauskommt. Wenn's System lauffähig ist, hast Du Glück gehabt, ist es verwendbar, dann war's kein DAU. Bei Linux gehört außer YaST noch ein wenig mehr zur Installation dazu.
Einen General-Wizard "Komplett-Einrichtung des Systems mit Mega-Feintuning" wirst Du bei Windows sicherlich nicht vorfinden. Schon die kleinen System-Tools wie Xteq X-Setup, XP-AntiSpy und TweakUI bieten soviele Möglichkeiten, oder um noch nicht mal so hoch zu greifen: Windows selbst mit Explorer --> Ordneroptionen, MS Config und Systemsteuerung, bieten soviele Einstellungsmöglichkeiten, dass eine Systemkonfiguration für einen Komplett-Durchlauf Wochen benötigen würde. Wenn Du das einem DAU zumuten willst, damit er sein Admin-Konto nicht zum Ausführen von Spielen missbraucht, dann wünsch ich Dir viel Glück ...

BTW: Warum muss ich eigentlich meine Uhr im Windows-Setup einstellen können, wenn ich das 1. im BIOS und 2. auch nach der Installation tun kann?

user profile iconPopov hat folgendes geschrieben:
Nein, man beläßt ein Konto wo der User alle Rechte besitzt.

Viele User wissen es nicht besser. Ich glaub nicht, dass Du ein Mensch der Praxis bist. Denn ich hab schon genug Computer von anderen Personen durchgucken dürfen, wegen Schädlingen, Spyware-Entfernung, Systemabschirmung, ... Die meisten, die zu mir kamen waren wirklich in die Kategorie DAU einzuordnen. Hättest Du denen ein richtiges "Setup" zur Verfügung gestellt, hättest die ihren Computer schnellstmöglich zu Aldi zurückgeschafft und Aufwandsentschädigung eingefordert ...
Der Einfachste Computer ist immernoch ein Computer mit einer 2-Tasten-Tastatur für "Ja" und "Nein" (auch wenn sich Word damit etwas beschissen bedienen lässt ;-)

user profile iconPopov hat folgendes geschrieben:
Und warum macht Microsoft das? Weil es blöde Programmierer gibt, die nicht kapieren, daß man nicht alles überall reinschreibt. Also die Windows 95 und Windows 98 Zeit könnte man noch verzeihen. Da wußte man es nicht besser. Aber das ist der Grund wieso Microsoft bei Windows XP keine Nägel mit Köpfen gemacht hat. Ok, die Zeit vor 2000 kann man noch verzeihen. Aber spätestens bei Windows XP muß man doch kapieren wo die Richtung geht.

Sicherlich, die Richtung war bereits nach Windows 98 relativ eindeutig erkennbar. Aber warum hat Microsoft keine Nägel mit köpfen gemacht: Weil sie sich einfach nicht klar werden konnten, welches Programm wo was machen darf. Selbst einige Microsoft-eigene Programme halten sich nicht daran. Wo müssten nach deiner Meinung die Sources von VisualC++ hin C:\Programme\VisualC++ 6.0\src ??? oder doch lieber C:\Dokumente und Einstellungen\All USers\Anwendungsdaten\VC6\Sources ???
Das ist doch lächerlich, denn auf das All Users-Verzeichnis haben auch nur Admins vollzugriff ... Von daher: Wenn Programme zusätzlichen Zugriff auf bestimmte Verzeichnisse benötigen, dann ist das Setup-Programm ODER der Administrator dafür zuständig dies einzustellen. Es macht also nichts, wenn ein Programm im C:\Programme-Verzeichnis seine Daten hinterlegt, SOLANGE, diese Daten in der richtigen Art und Weise multi-user-spezifisch verwaltet und verarbeitet werden können.

user profile iconPopov hat folgendes geschrieben:
Zuerst eine kleine Entwarnung - ich bin nicht böse auf die Programmierer hier im Forum. Zumindest nicht hauptsächlich. Hier kann man noch sagen, daß viele einfach nur Hobbyprogrammierer sind und es nicht besser wissen.
Da bin ich aber beruhigt :twisted: Aber um dich mal zu provozieren: Ich werde auch weiterhin meine Software so schreiben, dass Sie im Programme-Verzeichnis arbeitet, ABER sich selber drum kümmert, dass Sie die nötigen Rechte dafür bekommt. Das Windows-Verzeichnis ist von je her tabu für meine Software, da dieses Verzeichnis wirklich nur für das System da ist; Der Name "Programme"-Verzeichnis schreit ja regelrecht schon nach einer derartigen Nutzung :evil:

user profile iconPopov hat folgendes geschrieben:
Kann mir aber einer sagen wieso eine kommerzielle Software, die 2004 geschrieben wurde, immer noch versucht etwas in das Windows- oder Programme-Verzeichnis zu schreiben? Haben die etwas nicht mitbekommen? Wieso knallt mir mein gekauftes Programm um die Ohren, weil es versucht im Programme-Verzeichnis eine INI Datei anzulegen? Was man bei Hobbyprogrammierern noch ... nein verzeihen nicht, aber da weiß man wenigstens wieso es so ist. Aber bei kommerziellen Programmierern habe ich kein Verständnis. Da kann ich nur sagen: diese Software funktioniert nicht! Für diese Software will ich mein Geld zurück. Diese Software wurde fehlerhaft programmiert. Das ist kein Bug, denn man vielleicht mit dem Satz: keine Software kann fehlerfrei programmiert werden. Dieses Programm wurde trotz besseren Wissens falsch programmiert. Das ist so als ob man den Auto-Blinker nicht orange, sondern grün machen würde. Eben falsch.

Es gibt immer Nachzügler ... und diese wird es auch immer geben. Außerdem: Wie entsteht heut Software???

Abteilungsleiter an IT: Schreibt mal ein Programm!
IT an Abteilungsleiter: Was soll es können?
Abteilungsleiter an IT: Goliat spielen, aber David sein.
IT an Abteilungsleiter: Wie lang haben wir Zeit?
Abteilungsleiter an IT:: Bitte gestern fertigwerden!

Wenn dann neben Zeitdruck noch Unfähigkeit dazu kommt, dann bekommst Du ein Mautsystem a la TollCollect :twisted:

user profile iconPopov hat folgendes geschrieben:
Dafür gibt es entweder die Registry, wenn es sich um INI Informationen handelt, oder das Anwendungsdaten-Verzeichnis.

Wow ... Die Registry!!! :twisted: Da kann ich mein Programm auch gleich seine Daten ins Temp legen lassen und das Löschen auskommentieren. Hat genau den gleichen Nutzen! Die Registry ist zwar schön und gut angedacht, aber selbst das haben viele ja noch nicht kapiert ...
Hast Du Dir schonmal angeguckt, wie gründlich einige Setups\Uninstaller arbeiten ??? 1000 Dinge reinschreiben, einwas wieder Löschen (den Uninstall-String, damit der Uninstaller nicht mehr aufgeführt wird. Da kann ich auch gleich den Ordner im Programm-Verzeichnis löschen, in dem die INI-Dateien liegen :P

user profile iconPopov hat folgendes geschrieben:
In diesem Sinne - macht es besser als die Anderen ;)

... und nutzt das Programme-Verzeichnis :twisted:

Nene ... Einwand schon gerechtfertigt, aber der Aufwand ist einfach nicht gerechtfertigt, da Single-Dir-Installer immernoch beliebter sind, alls "Hau-Tausend-Treiber-ins-Windows-Dir"-Programme, die so fehlerhaft geschrieben sind, dass man einen Borland-USB-Stick zum Rebooten nutzen kann. (Selber passiert mit Borland-USB-Stick und Daemon-Tools 3.44, die 3.46 konnte ich auch ohne Stick nicht instllieren, da ansonsten PGP das System wegen den Daemon-Tools gecrasht hätte).

user profile iconHeiko hat folgendes geschrieben:
user profile iconPopov hat folgendes geschrieben:
Dafür gibt es entweder die Registry, wenn es sich um INI Informationen handelt, oder das Anwendungsdaten-Verzeichnis.

Also ich versuche inzwischen nix mehr in die Registry zu schreiben, da ich damit schon schlechte Erfahrungen gemacht habe. Denn die Programme die bei mir zu Hause ordentlich funktionieren, funktionieren auf den Schulrechnern nicht mehr, da ich keine Rechte habe in diesen zu schreiben.
Jip. Genau meine Einstellung: Alles was nicht in die Registry unbedingt rein muss, sollte auch draußen bleiben!

user profile iconHeiko hat folgendes geschrieben:
Außerdem braucht Windwos länger zum hochfahren, wenn die Registry immer größer wird. Der größte Nachteil bei der Registry ist aber, wenn dumme Anwender, zum löschen einer Anwendung, nicht die Uninstall-Funktion nehmen, sonder nur den Programmverzeichnisordner löschen, das immer Reste in der Registry bleiben, und damit den PC vollmüllen.
Schreib doch ein Programm, das beim Versuch das Programm-Verzeichnis eines Tools zu löschen, automatisch den Uninstaller im Silent-Modus aufruft :P

user profile iconHeiko hat folgendes geschrieben:
user profile iconPopov hat folgendes geschrieben:
Bei der Installation wird nicht gefragt welchen Typ das Konto sein soll, Computeradministrator oder Eingeschränkter User, sondern es werden automatisch ohne Rückfragen nur Computeradministrator Konten erstellt.

Hast du dir mal Gedanken gemacht, was passieren würde, wenn Windows nur einen eingeschränkten User erstellen würde?
1. Keiner könnte mehr etwas installieren, da keiner die Rechte hat sich zum Admin "umzubennen" (es gibt ja kein Admin auf dem Rechner)

Siehe oben mein Beispiel mit Firefox. Obwohl Du für größere Dinge wie NAV und andere Systemsoftware sicherlich Recht hast.
user profile iconHeiko hat folgendes geschrieben:
2. Nach der Installation von Windows sind nun einmal immer die Admins dran, da sie ja Windows auch installiert haben.

Wenn was nicht geht, doch auch ;-) *verstohlenzuuser profile iconTinounduser profile iconTUFKAPLguck*

user profile iconhansa hat folgendes geschrieben:
@Popov : ändere bitte Deinen Titel, siehe Richtlinien. :lol:

user profile iconPopov hat folgendes geschrieben:
@hansa : Der Titel ist schon richtig. Es ist mit Absicht so gewählt. Er zeigt, daß in dem Beitrag um etwas geht was falsch gemacht wird. Jede andere Titel würde das Problem nicht genug richtig beschreiben könnnen. Aber ich bin offen für Vorschläge.

Kennen wir dasnicht schon von ihm ??? :lol: Aber da muss ich zustimmen. Ein Titel der Art "Falsche Nutzung des Programmverzeichnisses" würde wesentlich besser passen ;-) Soviel mal zu besseren Vorschlägen ...

user profile iconhansa hat folgendes geschrieben:
Das da paßt mir genau richtig in den Kram. :mrgreen: Ich habe folgendes vor : mein Programm kommt in einen Ordner. Z.B. "C:MeinProg" Es gibt eine EXE, 1 INI und eine DB, die in ein Unterverzeichnis kommen soll. Dann noch 2 Interbase-DLLs die in das MeinProg -Verzeichnis müssen. Ich habe auch nicht vor, wie von Mickysoft gewünscht, die Registry zu vergewaltigen. Deshalb die INI. [...] Hintergrund ist, daß ich mind. 5000 CDs brennen lassen muß. Da kann ich mir keine Master-CD leisten, die nicht überall geht.

Das ist korrekt, aber so gut wie jeder Setup-Creator, den ich bis jetzt kenne, unterstützt die Möglichkeit, während des Setups, Berechtigungen in einem Ordner zu setzen. Warum solltest Du denn deine DB in ein separates Verzeichnis legen, wenn Du Dich ordnungsgemäß drum kümmerst, dass die Notwendigen Rechte vorhanden sind. Zumal das sicherlich eine globale DB sein wird, wo jeder User den gleichen Bestand haben soll. Da ist das Auslagern in ein User-Spezifisches Verzeichnis der Anwendungsdaten auch gar nicht sinnvoll IMHO.

user profile iconhansa hat folgendes geschrieben:
[EDIT] Ich habe einen Text vorbereitet (Disclaimer) in dem genau steht, daß keine Registry Einträge gemacht/geändert werden und eine "Deinstallation" des Programmes lediglich erfordert, den Ordner zu löschen, in dem es gespeichert ist. Als ich das einem zeigte, da hat er mich schief angeguckt :shock: und hatte nicht verstanden, warum der Rechner nicht neu gestartet werden muß.

:lol: Ich reg mich schon jedesmal über diese beschissenen Setup-Tools auf, die unnötiger Weise meinen Rechner nach der Installation neustarten wollen ... Wenn man weiß wie, kann man DX9.0c, W2K SP4, jegliche Sicherheitspatches von Windows, ZA, NAV und die ganzen anderen Sicherheitstools mit nur insgesamt 2 Neustarts installieren. Man sollte aber wirklich wissen, was man macht ... Anscheinend haben die meisten Setup-Tools diese Ahnung nicht, da sie einfach nur Dateien von A: nach C: kopieren sollen ;-).

user profile iconwulfskin hat folgendes geschrieben:
Hallo Popov,

danke für diesen Aufschrei!

... wir wären auch ohne ihn bereischert worden ;-)

user profile iconwulfskin hat folgendes geschrieben:
Leider kommt man als Windows-Benutzer nur wenig mit den Benutzerrechten in Kontakt (anders als bei Linux) und deshalb mag dies vielleicht dadurch zu erklären sein, dass diese Fehler noch gemacht werden.
Ich jedenfalls werde mir das jetzt merken und zukünftig diesen Fehler vermeiden!

Wenn das System durchdacht genug wäre, würde ich mich dort gern anschließen, aber ATM ist dies noch nicht der Fall.

user profile iconNeo Nemesis hat folgendes geschrieben:
Ich persönlich mag es nicht wenn Programme meine Registry oder meine Anwendungsdaten-Ordner zu ballern der ist schon 109 MB (114.724.864 Bytes) groß es nervt mich wenn ich stundenlang meinen Computer durchsuchen muss weil die Daten eines Programmes über die ganze Festplatte verstreut sind

Ähnlich geht es mir auch, besonders, weil viele Setup-Programme nichts taugen.
Windows bietet von haus aus eine "Ändern"-Funktion unter Software an. Guck Dir mal an, wieviele Setup-Programme diese Möglichkeit anbieten? Wenn es bei Dir mehr als 20% sind (von den 80 Windows-Patches mal abgesehen), dann sind es viele! Die Funktionen die Windows bereitstellt werden viel zu oberflächlich genutzt ... Und wenn sie mal zufällig genutzt werden sollten, wird die Hälfte von vornherein vergessen (siehe oben bzgl. Setup-Programmen, die 99% des Datenmülls in der Registry lassen).

user profile iconNeo Nemesis hat folgendes geschrieben:
Ich habe nichts gegen Benutzer Kompfort aber wenn ich ein Programm deinstaliere muss ich noch ewig alle Restdaten vom Computer suchen
und warum wollen alle Programme in den Ordner C:Programme da braucht man doch wirklich ewig was zu finden
Ich kann solche Probleme manuell korrigieren die meisten "einfachen" Computer-User aber nicht

Hier sollte man mal nachhaken und nachbessern

Manche Programme sind sogar absichtlich so programmiert ... :( Wenn man den NAV deinstalliert, darf man bei 3 User-Profilen erstmal 8 Ordner vom Rechner entfernen, damit keinerlei Restdaten mehr übrig bleiben. Sauber Programmiert ist es nur aus sicht des Shareware-Schutzes (den aber sowieso jeder umgeht, der weiß, wie's geht).

user profile iconfvolk hat folgendes geschrieben:
Prinzipiell bin ich absolut auf deiner Seite.

Allerdings frage ich mich nur, warum Microsoft mit dem .NET-Framework XML-Konfigurationsdateien eingeführt hat, die wiederum im Installationsverzeichnis des jeweiligen Programmes liegen. Geht das alles unter dem Banner "Installation mit xcopy"? Das hatten wir auch schon unter DOS (und da hat's - nebenbei erwähnt - ziemlich gut funktioniert).

Naja, funktioniert hat's unter DOS, weil das nur Single-User war und daher es kaum Probleme damit gab. Damals wussten aber viele auch noch, wie man mit einem Computer arbeitet, was Du zu Windowszeiten mit zunehmender Dauer exponential abnehmend annehmen darfst ...

user profile iconPhobeus hat folgendes geschrieben:
Ohje... was hat es den mit Komfort zu tun? Ich pflichte Popov absolut zu. Ein Programm, dass heutzutage noch in seinem eigenen Verzeichnis seine Konfiugration ablegt oder gar in einem Systemverzeichnis gehört vom System am besten gleich über den Jordon geschickt. Wir leben im Zeitalter von Multiuserbetriebsysteme (ja, auch Windows) und dort ist dies nur sinnvoll zu gewährleisten, wenn eben nicht alles in einem Ordner geschrieben wird und jeder die Einstellungen anderer überschreiben kann oder fast noch fataler: Seine aktuellen Benutzerdaten einsehen.

Siehe oben. Die Programme müssen sich um die User-Verwaltung selber kümmern, was aber im Zeitalter von Datenbanken nicht das große Thema ist. Mit relativ wenigen Programmzeilen kann man sich eine Tabelle in der DB anlegen, in der User-abhängig Daten gespeichert werden können. Machst Du dann auf die DB noch nen User-Level-Schutz drauf, dass nur bestimmte USer bestimmte Dinge sehen dürfen, kannst Du damit wunderbar arbeiten.

user profile iconPopov hat folgendes geschrieben:
Eigentlich sollte das keine Einleitung in eine Diskusion sein, sondern nur ein kurzes Statement. aber wenn sich schon einige genötigt fühlen ihr falsches Verhalten zu verteidigen, dann antworte ich drauf.

Wenn Du keine Diskussion darüber haben wolltest, schreib doch einfach ne Kolumne in ner Klatsch-Zeitung. Wer's lesen will, tut's, wer nicht, spart sich den Euro ...

user profile iconPopov hat folgendes geschrieben:
Ich bin kein Mensch der alles weiß, aber wenn mir schon einer etwas mitteilt, dann versuche ich nicht noch mit meine Unwissenheit zu glänzen.

Tust es aber immer wieder ... :twisted:

user profile iconPopov hat folgendes geschrieben:
Du schreibst nichts in die Registry, weil du damit schlechte Erfahrung gemacht hast? Schön, aber das ist nicht dein Bier darüber zu entscheiden. Es gibt Richtlinien für Windows XP und an die sollte man sich halten. Dazu gehört auch, daß man seine Ini-Infos in die Registry schreibt. Durch die paar Infos wird die Registry schon nicht groß.
:lol:
@Popov: Ich weiß nicht, in wie weit Dir bekannt ist, wie die Registry funktioniert ... Aber es gibt nicht um sonst Cleaning-Programme zum Reinigen, bzw. Programme zum Defragmentieren der Registry, denn die Registry basiert auf einem Index-artigen System, was umso langsamer arbeitet, je größer der Datenindex wird. Wenn man also 2000 Keys unter HKCR\CLSID stehen hat, brauch das System wesentlich länger, den Index nach einer GUID zu durchsuchen, als wenn dort nur 250 GUIDs drin ständen. Wenn Du jetzt noch dazu nimmst, dass die Registry unter Windows auf 64 MB begrenzt ist (Ja, die Registry kann per Systemeinstellung auf eine gewisse Größe begrenzt werden), und trotzdem jedes Programm seinen Müll in die Reg schreibt, versteh ich wirklich nicht, warum ich mich diesem Mainstream anschließen muss, wenn ich ganz genau weiß, dass ich die Registry durch häufige Datenänderungen unnötig stark fragmentiere und damit mein eigenes Program ausbremse. Da schreib ich mir lieber mein eigenes Verwaltungssystem und kann mir aber dafür sicher sein, dass mein Programm nicht durch müllig programmierte andere Software ausgebremst wird.
Es ist sowieso fraglich, warum der HKLM\Software-Zweig auf vielen Systemen etwa 5mal so lang (und länger) ist, als der HKCU\Software-Zweig, der für die meiste Software ja eigentlich zu bevorzugen wäre.

user profile iconPopov hat folgendes geschrieben:
Es sind eher die Leute, die fragen ob sie ihre 40MB Bilder in die Registry schreiben sollen, weil sie so am besten ihre Bilder unterbringen können. Ich kann mich zumindest an eine Diskusion hier im Forum erinnern wo es einer gefragt hat. Aber du hast eine Registry, die inzwischen 100MB groß ist? Dann sollte es dich freuen, daß es einen User Teil gibt. Eigentlich sollten Programme alles in die User Registy schreiben. Sollte die User-Reg versaut werden, dann reicht ein Kontowechsel und schon hast du eine nigelnagelneue User-Reg. So einfach geht das. Es ist der HKCU Teil der Registry wo man seine Infos schreiben sollte. Und wenn ich ehrlich sein soll, dann ist es der Teil wo es am leichtesten ist zuzugreifen. Nirgendwo kann man mit so wenig Aufwand etwas reinschreiben. Für alles andere muß man sich etwas Mühe geben. Deinstallationsroutinen hin under her, der HKCU bereich ist der einzige Bereich wo ein Programm schreibend und ohne Adminrechte zugreifen sollte.

Dem kann ich nur zustimmen, auch wenn ich gegen die Benutzung der Registry (allgemein) bin.
BTW: Wer 40 MB Grafiken in die Registry schreibt, gehört gesteinigt und gevierteilt. Bei letzterem bitte Zeitlassen, es soll sich ja lohnen! :twisted:

user profile iconPopov hat folgendes geschrieben:
Jedes Windows System hat automatisch das Adminstrator Konto. Dises Konto braucht man nicht erstellen und es kann auch nicht gelöschte werden. Dieses Konto ist automatisch da. Dieses Konto krigst du auch nie in ein Eingeschränktes Konto geändert.

Hast Du eine Ahnung ... Ich kenn jemanden, der das OHNE Zusatz-Tools geschaft hat, auch wenn Windows einen Extra-API-Fehlercode (Code 1322 FYI) für diese Meldung bereitstellt ^^

user profile iconPopov hat folgendes geschrieben:
Grund sind die Programmierer die falsch programmieren.

Ich würd gern, wenn die Schnittstellen eindeutig wären ... Aber solange man sich auf kein System wirklich Systemunabhängig einigen kann, macht jeder, was er will. Schlechte Programme bestrafen sich von selbst.

user profile iconPopov hat folgendes geschrieben:
Microsoft will keinen Ärger mit nicht funktionierenden Programmen die für Windows 9x programmiert wurden.
:lol: Nur zu gut, das Du diese These gleich mit deiner "Schuld sind die Programmierer"-Aussage beweisen kannst, weil Microsoft sind ja auch Programmierer (und Marketing-Fuzzies, die nur ihre Kohle einsacken wollen.
Nur zu schade, dass sich selbst Microsoft-Programme nicht immer an ihre eigenen Registry-Konventionen halten ...

user profile iconPopov hat folgendes geschrieben:
Aber warum halten sich Programmierer die für XP programmieren nicht an die richtigen Regeln? Darum geht es hier. Bei der Windowsinstallation kann der Administrator gleich weitere Konten erstellen. Spätestens nach der Installation kann er aus diesen Eingeschränkte Konten machen.

Dann schreib ne Doktorarbeit darüber, wie ein solches Setup aussehen müsste, dann müssten wir uns das hier nicht alle durchlesen. Anregungen findest Du weiter oben in meinem Post :twisted:

user profile iconPopov hat folgendes geschrieben:
Es ist zwar schön, daß man ein Programm durch einfaches löschen des Ordners komplett aus dem System entfernen kann, aber mit Eingeschränktem Konto kann man nichts aus dem Programme Ordner löschen.

Per Uninstaller bleiben aber häufig Tonnenweise Reste ... Verbessere die Uninstaller und deren Akzeptanz wird steigen. Bau am besten gleich ein einfach zu nutzendes Uninstaller-System in dein System ein, was die Datenverwaltung richtig organisiert und jegliche Daten eines Programms erfasst, und du wirst Dich vor zuspruch nicht mehr retten können.

user profile iconhansa hat folgendes geschrieben:
user profile iconPopov hat folgendes geschrieben:
Es ist zwar schön, daß man ein Programm durch einfaches löschen des Ordners komplett aus dem System entfernen kann, aber mit Eingeschränktem Konto kann man nichts aus dem Programme Ordner löschen...


Popov, man kann es dann auch wohl kaum installieren. Wer keine Schreibrechte hat, der wird wohl kaum was löschen konnen. 8) Der Rest der Frage ist völlig offen.

Siehe mein Beispiel oeben mit dem Firefox ;-) USer wissen sich schon zu helfen, wie sie administrative Vorgaben umgehen ;-)

user profile iconhansa hat folgendes geschrieben:
Aber versuch hier keine Übezeugungsarbeit zu leisten. Deine Gedanken sind nicht richtig.

Dann brauchst Du Dich an dieser Diskussion eigentlich auch nicht mehr beteiligen, da eine Diskussion in ihrem Grundcharakter IMMER ein Meinungsaustasuch sein sollte ...

user profile iconhansa hat folgendes geschrieben:
Ein wichtiger Punkt für das XP Zertifikat ist, daß du dich an diese Regeln hälst.
Mir ist es bei meinen Programmen nicht wichtig, dass sie zertifiziert sind, sondern, dass Sie lauffähig sind.

user profile iconhansa hat folgendes geschrieben:
Bei der Registry reagieren die Leute zunehmend allergisch und installieren Programme im Zweifelsfall lieber nicht.
Und genau das ist der Punkt! Wäre jetzt nämlich die Frage, warum die Leute darauf allergisch regarieren. Doch bestimmt nicht, weil die Registry so wunderschön ist, sondern viel mehr, weil die Registry von zahllosen Programmen bevölkert wird, die nicht mit ihr umgehen können. Datenmüll im MB-Bereich ist da nur ein kleiner Nebeneffekt; ein langsames System der durchaus spürbarere.

user profile iconhansa hat folgendes geschrieben:
M$ kann sich sein XP-Zertifikat von mir aus sonstwo hin stecken. Es ist fast besser so was gar nicht zu haben. 8) Desweiteren lese ich hier nur, wie es nicht gehen sollte. Vorschläge so was optimal zu lösen, die felen.

Auch hier muss ich zustimmen. Wenn ich für mein Programm jegliche verfügbaren Zertifikate beantragen würde, wäre ich mehr damit beschäftigt, die Richtlinien für die Zertifikate einzuhalten, als irgendwas produktives am Source voranzubringen ... Ergo: Ich kann auch gleich aufhören zu programmieren, denn allen immer alles Recht zu machen, geht nicht und möchte ich auch nicht. Für mich sind die User wichtiger, als irgendwelche Software-Konzerne, die wieder mal in TCPA- oder TCG-Manier irgendwelche Richtlinien durchdrücken wollen, dass Programme plötzlich bestimmte Operationen nicht mehr dürfen, nur um ein angeblich "nur durch User-Programme löchriges System" zu stopfen ...

Liebe MickySoft-Mitarbeiter: Fangt bitte mal bei euch selber an, schrumpft Windows auf einen Stapel von 10 Disketten und 1% der ATM bekannten ähhhm, vorhandenen mein ich ;-) Sicherheitslücken und fragt dann bei den Programmierern anderer Firmen sowie Hobby-Programmierern nochmal nach.

Die heutige Entwicklung auf diesem Sektor geht am User vollkommen vorbei! Ich will kein System haben, wo ich jedes Jahr 3 neue Rechner kaufen muss, nur um ein Office auszuführen; ich will auch kein System, bei dem ich täglich Pflaster aus der Apotheke holen darf, weil die Eiterprozesse so ein schwaches Immunsystem haben.

Wenn jedes Script-Kiddie leichter an Exployts ran kommt, als die Sicherheitspatches zu installieren, ist irgendwas falsch:
- Neuer Exployt: 20 KB, mit Anleitung
- Patch gegen Exployt 500 KB, ohne Anleitung, warum der Exployt möglich ist.
Dann erklärt doch den ScriptKiddies, wie sie Patch-Exployts proggen können :P Vielleicht patcht dann der nächste I-Love-You gleich das Windows so, dass man gern seine Firewall abschaltet, weil einem noch der Sicherheitspatch von nächstem Jahr fehlt ;-)

user profile iconPopov hat folgendes geschrieben:
Im eingeschränktem Modus können keine Schädlinge aus dem Internet bei Surfen das System befallen. Ist fast unmöglich, und wenn es einem gelingt, dann ist er nach dem Neustart inaktiv.
Naja, wenn Du die meisten neueren Viren her nimmst, dann sag ich nur Exployts ... Wenn Du einmal nen Virus im Ring 0 hattest, dann ist meist die erste Aktion, dem Virus jeglichen Zugriff auf's System offen zu legen. Danach geht's erst an das Arbeiten. Und da ist es an vielen Stellen uninteressant, mit welchen Rechten ein Endanwender seinen Browser bedient. Soweit ich mal gehört hab, hat es jemand mal geschafft, ein ungesichertes System in Internet zu stellen (zu Testzwecken). Das System war schneller runtergefahren, als er die Windows-Update-Seite aufrufen konnte :P
Und das war Tage nach der großen Sasser-Welle ;-)

user profile iconPopov hat folgendes geschrieben:
Windows XP bietet Möglichkeiten die nur dem Linux zugesprochen werden. Aber Linux hat es von Anfang an richtig gemacht. Administratorkonto und Eingeschränktes Konto. Basta. Da wird nicht darüber diskutiert. Windows XP bietet die gleichen Möglichkeiten, ist aber nicht so streng bei der Kontovergabe.

Wenn ich mir aber auch ein WinXP hernehme, dann wundert's mich, warum M$ das überhaupt noch drin gelassen hat. Man hat unter XP Home noch nicht mal die Möglichkeit, wie unter W2K, die Group Policy ordentlich einzustellen. Zumindest mit Boardmitteln kannst Du das vergessen. XP (Home) ist ein typisches DAU-System!

user profile iconPopov hat folgendes geschrieben:
Microsoft ist gezwungen das System so anzupassen, daß die delitantisch programmierten Programme dennoch funktionieren.

Dann sind M$ aber nicht konsequent: Dann sollten Sie doch einfach das System restriktiv machen und jegliche delitantisch programmierten Programme aus'm System kicken. Die delitantischen Programmierer werden das früh genug merken, weil ihre Programme unnötigen Support-Aufwand verursachen.

user profile iconPopov hat folgendes geschrieben:
Dabei ist alles so einfach. [...] Registry ist die Möglichkeit. Was glaubst du wieso Microsoft die eingefügt hat? Damit eben die INIs angeschaft werden und man das System endlich sicher machen kann. Die Registry teilt sich in fünf Bereiche und es gibt nur einen Bereich in den mit eingeschränkten Rechten geschrieben werden kann.

Und da geb ich Dir auch gern recht, da die Grundidee der Registry gut durchdacht ist. Nachteil ist nur, dass nicht jeder kapiert hat, wie mit diesem Werkzeug umzugehen ist.

user profile iconPopov hat folgendes geschrieben:
Diesen Bereich kannst du nicht zumüllen. Und wenn, dann ist es leicht wieder herzustellen. Es ist uninteressant ob Leute was gegen die Registry haben. Dafür ist die Registry da. Wer das nicht einsieht ist Hobbyprogrammierer und seine Programme gehören nicht auf die Rechner.

Und dass zumüllen machen ja auch die meisten Programme, ohne diesen nachher wieder zu bereinigen. Und genau daher ist die Registry in Verruf geraten ...

user profile iconMathiasSimmack hat folgendes geschrieben:
Die angesprochene Säuberung noch kurz: Wenn der Admin die Anwendung deinstalliert, dann werden dabei in den meisten Fällen auch gleich seine persönlichen Einstellungen gelöscht, weil das Setup ja auf sein Benutzerprofil bzw. auf seinen HKCU-Zweig der Registry zugreifen kann. Zugegeben, die Einstellungen der anderen User bleiben zurück.

Und genau hier sollte das System etwas sauberer Arbeiten lernen. Und sei's nur, dass das Setup-Tool Windows bescheid geben kann: Jeder User hat einen Schlüssel HKCU\Software\MickySoft\Windows, der nicht mehr benötigt wird. Kümmer dich mal drum. Aber genau da lässt das System die Setup-Tools im Stich.

user profile iconMathiasSimmack hat folgendes geschrieben:
Und da möchte ich Borland ins Spiel bringen: Auf deren CD befindet sich ein Cleaning-Tool, das unter jedem Benutzerkonto gestartet werden kann, und das nur die Benutzereinstellungen entfernt. Wie gesagt: Für die Deinstallation ist der Admin verantwortlich. Aber das Tool kann jeder Benutzer nehmen, um seine Einstellungen zu löschen. So ein Tool kann man IMHO recht schnell schreiben, denn jeder Entwickler dürfte wohl am besten wissen, welche Dinge zu entfernen sind.

Aber es gibt kaum Programme, die solch ein Tool mitbringen. Außerdem denken 99% der User nach der Deinstallation eines Programms nicht mehr daran, das Cleaning-Tool auszuführen ... Von der Platte, aus dem Sinn.

user profile iconhansa hat folgendes geschrieben:
Tja, das da bringt mich keinen Meter weiter. Warum M$ und auch Popov empfehlen, die Registry zu verunstalten bzw. aufzublähen ist mir nicht ganz klar. Wozu soll das gut sein, zumindest gegenüber einer simplen Textdatei in einem eigenen Verzeichnis ?

Ich glaub mal, dass nennt sich zentrale Datenmüll-Sammlung ;-)

user profile iconPopov hat folgendes geschrieben:
Windows XP ist ein relativ sicheres System.

Und wieimmer vergisst Du, dass man WinXP im Auslieferungszustand nicht gebrauchen kann, da die Spyware gleich vorinstalliert ist und jeglichen Trojanern das Einfallstor geöffnet wird. Und wie gesagt: Dazu muss man noch nicht mal als Admin arbeiten :P

user profile iconPopov hat folgendes geschrieben:
Die Windows 9x Zeit ist mit XP endlich vorbei und zum ersten mal bietet Microsoft für den Heimbereich ein relativ sichers System.

Microsoft arbeitet am User nur noch vorbei. Wenn's wirklich sicher wäre, müsste M$ nicht monatlich mehere Patches schreiben um Sicherheitslücken im Kernel zu stopfen. Anstatt Windows weiter aufzublähen, sollte man mal wieder zur Essenz des Systems zurückfinden. Ich brauch wirklich kein System, dass ich von CD installiere, aber auf dem ich das System-Image nur mit Mühe und Not auf eine DVD gesichert bekomme.

user profile iconPopov hat folgendes geschrieben:
Du kannst auf eine böse Seite im Internet gehen ein OK in ein Feld eingeben, und dennoch wird bei dir kein Dialer installiert. So sicher und stark ist Windows XP. Da braucht man keine Extra Programme.
Du kannst aber auch das SP2 installieren und dich wundern, warum der integrierte Popup-Blocker, verbunden mit der JavaVM von M$ nur noch weiße Fenster anzeigt, und das selbst auf der M$-eigenen Update-Seite. Man darf sich dafür erst ne neue Java-VM runterladen und dann hoffen, dass das Problem dann gefixt ist. Außerdem wundert es mich dann aber, dass zwar ein Popup-Blocker integriert wird, aber der Adblocker fehlt :twisted: Vergleich mal kritisch die Funktionen des Betriebssystems und die Features, die OpenSource-Software bereitstellt. Mozilla war sich seiner Sache im Firefox sogar so sicher, dass sie eine Belohnung von 500 Dollar ausgestellt haben, für denjenigen, der eine Sicherheitslücke im Firefox findet. MickySoft sollte an diese Möglichkeit eher nicht denken, wenn man mal beachtet, wieviele Bugs in den letzten Jahren gefunden wäre. Ich glaub, entweder läg der Preis für eine Windows-Lizenz inzwischen bei 1000 Euro für ne XP Home, oder MickySoft wär inzwischen pleite ... Qualitätsprüfung lässt grüßen ^^

user profile iconPopov hat folgendes geschrieben:
Voraussetzung dafür ist aber, daß man mit eingeschränktem Rechten arbeitet. Diese beschneiden deine Rechte beim Arbeiten und machen dadurch das System sicher. Was du nicht darfst, daß darf auch der Schädling nicht.

Bringt aber nichts, solange die Schädlinge Hintertüren nutzen können, um an mehr Rechte zu gelangen ... Such einfach mit Google mal nach Exployt+Admin ... Ich hoffe, das Ergebnis überrascht dich nicht allzusehr ;-) Es gibt Bugs, die hat Microsoft für Jahre geöffnet gelassen. Bekanntestes Beispiel ist der DebPloyt (Debugger API Exployt, der jedem Gast erlaubt hat, als Systemprozess zu arbeiten).

user profile iconPopov hat folgendes geschrieben:
Dieser Kommentar ist eigentlich eines Kindes wert, aber nicht eines Programmieres. Wozu soll das gut sein? Damit User sicher mit ihrem Windows arbeiten können. Wie oft willst du das eigentlich noch hören? Oder besuchst du eine Sonderschule und verstehst es wirklich nicht?

Bitte sachlich bleiben!

user profile iconPopov hat folgendes geschrieben:
Ich würde dir empfehlen dir dein Benutzerkonto anzugucken. Dann lernst du viel.

Wenn Du mal ein XP-Home-System gesehen hast, müsstest Du IMHO schon festgestellt haben, dass es da nicht viel gibt, was man konfigurieren kann. Nicht mal als Admin ... Die Group Policy hat Microsoft unter XP Home gnadenlos weggelassen, wobwohl sie genau da am wichtigsten gewsen wäre!

user profile iconMathiasSimmack hat folgendes geschrieben:
Und wenn man doch Admin-Rechte für sein Programm braucht, dann prüft man diese und verweigert ggf. die Ausführung des Programms. Abgesehen davon gibt es seit Windows 2000 die Möglichkeit, mit eingeschränkten Rechten zu arbeiten, aber Programme trotzdem als Admin starten zu können. Ab Windows XP ist der Eintrag "Ausführen als" im Kontextmenü (Explorer) eines Programms immer zu sehen, bei Windows 2000 muss man die Shift-Taste drücken. Oder man bemüht das Kommandozeilentool runas.exe.


Und dazu kann ich nur sagen: Wenn an unseren Schulrechnern irgendwas nicht geht, öffne ich ne Kommandozeile, schreib den nötigen Befehl, setz ein "runas /User:Adminstrator" davor und frag unseren Info-Lehrer, die Operation zu bestätigen ... wenn ich bös wär, hätt ich da schon öfters Dinge anstellen können :P

user profile iconMathiasSimmack hat folgendes geschrieben:
Die Rechteprüfung für Delphi wurde hier im Forum schon mal Suche in: Delphi-Forum, Delphi-Library ERW?HNT. In .NET ist sie sogar noch simpler (mit Dank an sakura):
Grüß Die Katze mal bitte von mir ;-)

P.S.: Jeder, dem dieser Post zu lang ist, sei ans Herz gelegt, bitte selber kürzere Posts zu schreiben ... Ich saß für diese Antwort knapp dreieinhalb Stunden ...

Moderiert von user profile iconMotzi: Delphi-Tag korrigiert.


hansa - So 01.05.05 20:10

Am "Tag der Arbeit" mute ich mir nur zu, die Hälfte des überlangen Postings gelesen zu haben. Rest folgt aber noch. Wollte nur mal anmerken, daß Du mich falsch zitierst. 8) Ungefähr hier fängts an :
Hansa hat folgendes geschrieben:
Aber versuch hier keine Übezeugungsarbeit zu leisten. Deine Gedanken sind nicht richtig.


Meine Zwischenfrage wurde übrigens einfach ignoriert, deshalb formuliere ich sie nochmals : Wer hat etwas dagegen einzuwenden, wenn mein Programm in einem eigenen Ordner installiert wird und durch einfaches Löschen desselben "deinstalliert" werden kann. Wobei ich keinerlei Änderung an der Registry vorhabe.


patrick - So 01.05.05 21:12

[OT]
@BenBE
alles gute zum längsten beitrag in der DF geschichte :mrgreen:
[/OT]


Holgerwa - So 01.05.05 21:23

Hallo,

@Popov: Hier wird so viel von den Richtlinien gesprochen, die eingehalten werden sollen, und wie Du schon bemerkt hast, wissen die meisten Leute garnicht, daß diese existieren.

Hast Du vielleicht einen Link, wo diese Richtlinien zu finden sind?

Das würde bestimmt vielen weiterhelfen, dann könnte man sich das Ganze mal durchlesen, und sehen, wo man gegen die Richtlinien verstößt.

Gruß,
Holger


patrick - So 01.05.05 22:08

naja, viele informationen kann man via "online seminaren" von der MSDN homepage herausfinden:
http://msdn.microsoft.com/training/seminars/
guck mal unter "Windows Development" dort findest du unmengen von informationen


Popov - Mo 02.05.05 02:14
Titel: Re: Liebe Leute, das geht doch nicht, ich bitte euch ...
Zuerst möchte ich dir, BenBE, auch zu dem längsten Beitrag in der DF Geschichte gratulieren ;)

Ich werde nicht auf alles eingehen, dann dein Beitrag ist einfach zu lang, aber ich werde auf einige Punkte eingehen:

Zuerst dein Einwand zu den INIs. Auch dir sage ich, daß die INIs noch ein Relikt aus der Win 3.x Zeit sind. Die sind nicht zum benutzen da, die sind eingentlich nur noch aus Kompatibilität da. Die Registry erstetzt die INI Wirtschaft. Bevor hier noch ein mal das mit dem Zumüllen der Registry kommt, bitte vorher die Registry genau untersuchen. Sie besteht aus einem Teil, der nur vom Admin beschrieben werden kann, und einer eigenen Registry die für jedes Konto. Nur in diese zweite Registry kann im eingeschränktem Modus geschreiben werden. Sollte das System irgendwann wegen der Registry zu langsam werden, dann reicht es ein neues Konto zu erstellen und schon hast du eine Registry im Ursprungszustand. Dauert 30 Sekunden und du hats eine saubere Registry. Dann noch paar Ordner kopieren und schon ist alles klar.

Aber wenn du doch mit INIs arbeiten willst, dann gibt es immer noch den Anwendungsdaten-Ordner wo du für dein Programm ein Unterordner anlegen kannst, und schon kannst du schreiben usw. Jetzt frag nicht nach den komplizierten Pfaden. Da macht man sich ein mal eine Unit und baut sie in jedes Programm ein. Es gibt also wirklich keine Ausrede. Microsoft bietet Ausweichbereiche.

Zu den Viren die auf Systemlücken aufbauen. Das stimmt so nicht. Viren, die Sicherheitslücken nutzen, können nur mit den Rechten arbeiten mit denen du arbeitest. Ich will nicht behaupten, daß es keine soche Schädlinge gibt, aber ich bin etwas informiert und ich kenne keinen Schädling, der von Windows aus es schaft ohne Zutun Adminrechte zu erlangen. Das stimmt also nicht was du da erzählst. Informiere dich bitte genauer und erzähle keine erfundenen Schauermärchen. Windows XP ist kein unsicheres System. Nur dadurch, daß alle mit Adminrechten arbeiten, gibt es diese Probleme. Und ob du in deiner Schule dich mit einer CD dich einhacken kannst spielt hier keine Rolle. Das ist nicht das Thema. Zu dem Rest erzählst du sehr viel Unsinn. Das liegt daran, daß du einfach nicht alle Möglichkeiten kannst. Nur weil der Admin eurer Schule nicht alles kennt, bedeutet es nicht, daß alles möglich ist. Tue hier nicht einen auf Hacker. Aber es geht hier nicht um das einhacken von Außen über Hardware, auch wenn man sich dagegegen schützen kann. Halte dich also an das Thema.

Zu der Uhr. Die Uhr stellt sich automatisch ein, wenn du den passenden Dienst laufen läßt. Im Eingeschränktem Konto kannst du die Uhrzeit nicht ändern. Das dürfen nur Adminsitratoern.

Zu dem Praxismenschen und den Schädlingen. Es reicht ein simples Eingeschränktes Konto ohne weitere Einstallungen und 99,99% aller Schädlinge haben keine Chace. So simpel ist das. Nur Eingeschränktes Konto und dein Rechner ist schon sicher. Wenn du Lust hast, dann kannst du mehr machen, mußt du aber nicht unbedingt. Und um das geht es hier im Thread! 5% aller Programme machen Probleme beim Eingeschränktem Konto, weil die Programme etwas im Windows oder in Programme Verzeichnis schreiben. Wegen diese 5% aller Programme etscheiden sich die meisten zurück zum Admin Konto zu wechseln. Diese 5% der Programme können viel Arbeit machen. Nicht jeder ist direkt und schmeißt die vom Rechner. Alternative ist Fummelarbeit.

Ich hab seit zwei Jahren Windows XP und surfte ein Jahr in gefährlichen Seiten mit dem IE. Dennoch habe ich keine Schädlinge abbekommen. Soviel zu Praxis. Es reicht nur ein Eingeschränktes Konto und schon bist du relativ sicher. Alternative ist das Adminkonto, damit hansa seine INIs weiter im Ordner packen kann.

Microsoft hat Nägel mit Köpfen gemacht, zumindest was Windows XP angeht. Das etliche Programme von Microsoft auch Probleme bereiten, bedeutet nur, daß es eine große Firma ist. Hier liegt der Fehler nicht an Windows XP, sondern an den Programmen.

Auf das All Users-Verzeichnis haben alle Zugriff.

Du willst weiter Programme schreiben die im Ordner Daten schreiben? Dann kommt mir dein Programm nicht auf meinen Rechner. Es wird vieleicht noch mit Adminrechten installiert. Gestartet wird es nur mit eingeschränkten Rechten. Wenn es Probleme machen wird, und es wird Probleme machen, dann ist es weg vom Rechner. Und zu deiner Bemerkung, daß du dir die nötigen Rechte schon nehmen wirst. Das ist lächerlich. Schreib ein Programm und ich führe das im Eingeschränktes Konto. Ich will sehen wie du etwas in das Windows- oder Programmeverzeichnis schreibst :twisted: Wenn du es nicht schreibst, dann werde ich dich in Zukunft damit aufziehen.

Zu deiner Bemerkung wie die Software etsteht. Lächerlich. Da hast du anscheinend Null Ahnung. Jede Software kann so programmiert werden, daß sie im Eingeschränkten Konto arbeiten kann. Man muß es nur wollen.

Dein "Wow ... Die Registry!!!" ist so lächerlich, daß ich es nicht kommentieren werden. Leute, wenn ihr keine Ahnung habt worüber hier gesprochen wird, dann quatscht nicht dazwischen.

BenBE, anscheinedn bist du auch nur ein Programmierer der keine Ahnung hat worüber hier gesprochen wird. Noch einmal: deine Programme werden auf meinem Rechner nicht funktioniern, weil sie die INI in ihrem Ordner nicht ändern können. So einfach ist das. Wenn du willst, dann kannst du die INI lesen, aber schreiben ist nicht. Wenn du also Programme schreiben willst die nicht funktionieren, dann mach weiter so.

Antwort auf Heikos Zitat: "Jip. Genau meine Einstellung: Alles was nicht in die Registry unbedingt rein muss, sollte auch draußen bleiben! "

Mensch, informier dich endlich etwas über die Registry. Deine Unwissenheit ist schon furchbar. Und du prallst noch damit. Lächerlich.

Autwort auf wulfskin: Zitat: "Wenn das System durchdacht genug wäre, würde ich mich dort gern anschließen, aber ATM ist dies noch nicht der Fall."

Junge, das tut schon weh. Bist zu einem Punkt kann man noch von Unwissenheit sprechen. Ab einem Punkt kann man nur noch von Dummheit sprechen. Und du hast dich da voll reingestürzt und bist anscheinend noch stolz darf.

Ich hab mir auch den Rest deines Beitrags durchgelesen und es nur als dumm zu bezeichnen wäre zu wenig. So ein Schwachsinn liest man eigentlich selten.

Dein Beispiel mit Firefox zu Umgehung der Adminrechte ist eigentlich auch lächerlich. Aber keiner bestreitet, daß es unter Eingeschränkten Konten nicht möglich ist Programme auszuführen. Die Teilinstallation übenimmt Firefox. Das war du machst ist lediglich in deinem Benutzer Ordner, oder einem Unterordner, FireFox auszuführen. Solltest du es unter C gemacht haben, dann hat der Admin Mist gebaut, denn da hat man keine Schreibrechte. Aber hast du dich schon gefragt wieso FireFox funktioniert? Er schreibt garantiert seine Einstellungen nicht in seinen Ordner. Zuerst nutzt er die Registry. Auch im Eingeschränkten Konten kannst du in den HKCU Teil der Registry schreiben. Was nicht für die Registry gedacht ist, daß landet im Anwendungsdaten Ordner. Da findest du den Ordner Mozilla. Wenn du weiter guckst, dann findest du die Bookmarks, den Cache usw. Siehst du? Und um mehr geht es hier nicht. Du hast so ein Tara gemacht und lieferst ein Programm das sich genau an die Richtlinien hällt. Das Problem aber mit deinem FireFox ist, daß du den zwar ausführen kannst, er aber nur in deinem Konto sichtbar und nutzbar ist. Aber das ist kein Umgehen des Admins. Wenn es das ist was du willst, daß man deine Programme nur auf dem Desktop ausführt, dann kannst du es machen wie du willst.

Das XP Zertifikat, oder wie es auch heißt. Wer dieses Zertifikat haben will, damit er auf der Packung "Designet for Windows XP" schreiben kann, der muß die Regeln einhalten. Es zeigt (oder sollte zeigen wenn bei der Vergaben nicht geschlammt wurde), daß ich dieses Programm unter WindowsXP ausführen kann wie ich will und keine Probleme haben werde. Es sagt eigentlich nichts anderes aus, daß sich die Programmierer an die Regeln, die MS für XP erstellt hat, gehalten haben.

Ansonsten muß ich feststellen, daß sich zwei xyz-Köpfe, BenBE und Hansa, getroffen haben. Einer der keine Ahnung hat, bestätigt dem Anderen, der auch keine Ahnung hat, das er Ahnung hat. Hähä.

Zu den Exployts. Eigentlich blamierst du dich nur andauernd. Ich will auf Eingeschränkten Konten hinaus und du willst weiterhin offenes Windows, damit du deine INI in deinem Ordner packen kannst. Ist dir klar, daß so gut wie alle Sicherheitslücken im Eingeschränktem Konten harmlos sind? Die Schädlinge können nur mit deinen Rechten arbeiten. Und das bedeutet, daß sie eigentlich nur innerhalb eines Benutzerordners im Dokumente und Einstellungen Ordner agieren können. Und hier können sie so gut wie keinen Schaden anrichten. Also quatsch nicht etwas von Exployts.

Du mischt permanent Wissensbruchteile miteinander ohne es richtig zu machen. Im Eingeschränkten Konten kann ein Schädling höhstens die Startseite kurz (aber nicht dauerhaft) ändern und paar Favoriten hinzufühen. Man sieht hier, daß du in dem Bereich nicht die nötige Ahnung hast. Das von dir beschriebene Scenario ist nur Adminrechten möglich. Und die werden genutzt, weil Leute wie du unbedingt ihre INI in Ordner schreiben wollen.

Auch XP Home hat Möglichkeiten. Man muß nur wissen wie man sie nutzt.

"Bringt aber nichts, solange die Schädlinge Hintertüren nutzen können, um an mehr Rechte zu gelangen ... ". Und schon wieder keine Ahnung.

Du wirfst zwar locker mit begriffen wie Group Policy usw., aber blickst anscheinen nicht durch. Wer braucht schon die Group Policy im Homebereich. Die braucht man wirklich nicht um Sicher zu arbeiten. Auch mit Home Mitteln geht es. Ist zwar ein wenig versteckt, aber vieles da.

So, du hast viel geschrieben, aber aus der Sichte eines Jugentlichen, der ein wenig in der Schule aufgeschnapt hat und hier und da auch etwas Hintergrundwissen hat. Hättest du ein wenig darüber nachgedacht was du geschrieben hast, dann wären dir viele unsinnigen Sachen aufgefallen.

PS: Sorry für die Fehler, aber ich hab den Text nicht korrekturgelesen. Hatte ich keine Lust.


Delete - Mo 02.05.05 02:42
Titel: Re: Liebe Leute, das geht doch nicht, ich bitte euch ...
user profile iconBenBE hat folgendes geschrieben:
Möchte man nun die INI in ein anderes Verzeichnis verschieben, so wird aus der kurzen Zeile

Delphi-Quelltext
1:
INI := TINIFile.Create('meine.ini');                    

plötzlich der lange Text

Delphi-Quelltext
1:
INI := TINIFile.Create(IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + 'meine.ini');                    

und wenn man schonmal dabei ist, auch schnell
TINIFile.Create(IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + ExtractFileName(ChangeFileExt(Application.ExeName, '.ini')));[/delphi]

Wie wäre es mit

Delphi-Quelltext
1:
Ini := TIniFile.Create(ChangeFileExt(ParamStr(0)));                    

:mrgreen: Mmal davon abgesehen, dass sie dort auch nicht hingehört. :roll:

Zitat:

Gut. Ist alles in eine Funktion auslagerbar, aber wirklich vorteilhaft ist das doch auch nicht, dass man an tausend Stellen in seinem Programm suchen muss, um seine Verwaltungsdinge zu ändern:
- Funktion zum auslesen von Systemverzeichnisnamen
- Funktion zum ermitteln des Anwendungsdaten-Verzeichnisses
- Funktion zum ermitteln des INI-Dateinamens für systemweite Einstellungen
- Funktion zum Ermitteln des INI-Dateinamens für userspezifische Zugriffe
- Funktionen zum Lesen und Schreiben der Daten
Da wird der Source zum Verwalten der Dinge sehr schnell sehr umfangreich. Ich glaube, da sollte mal endlich ein einheitlicher Standard gebaut werden, der dies sehr stark vereinfacht und INI-Dateien automatisch in den Anwendungsdatenordner anlegt, am besten mit angabe lokal oder global ...

DA GEHÖREN SIE NICHT HIN! Warum nicht, wurde schon oft genug erwähnt im Thread.

Zitat:

Das "dürfen es vielerorts nicht" stimmt so nicht ganz: Ich kenn selber in unserer Schule einige Rechner, da kann von CD gebootet werden. Wenn ich bösartig wäre, würde ich meine Boot-CD (Ob BartPE oder Knoppix ist egal) und Dateien im System verändern. Da nützen dann auch Sicherungen an den Betriebssystemrechten nichts.

So bald man physischen Zugriff auf einen Rechner hat, ist es sowieso vorbei mit der Sicherheit.

Zitat:

user profile iconPopov hat folgendes geschrieben:
Viele machen es nicht ein mal mit Absicht, sondern weil Microsoft es so bei der Windows Installation so gesteuert hat. Bei der Installation wird nicht gefragt welchen Typ das Konto sein soll, Computeradministrator oder Eingeschränkter User, sondern es werden automatisch ohne Rückfragen nur Computeradministrator Konten erstellt. Und keiner weist nach der Installation einen drauf hin es später wieder umzustellen.

Dass die Einstellungen im Windows-Setup dürftig sind, ist doch nun schon allgemein bekannt; genauso wie die Tatsache, dass 90% der Windows-Anwender DAUs oder DAUs mit Fortschritt sind. Microsoft setzt somit im Setup auch gar nichts weiter daran, das zu Ändern, weil jede Erweiterung des Setups nur unnötig die Installation verkomplizieren würde. Setz mal nen DAU an ne Linux-Installation und guck, was dabei rauskommt. Wenn's System lauffähig ist, hast Du Glück gehabt, ist es verwendbar, dann war's kein DAU. Bei Linux gehört außer YaST noch ein wenig mehr zur Installation dazu.
Einen General-Wizard "Komplett-Einrichtung des Systems mit Mega-Feintuning" wirst Du bei Windows sicherlich nicht vorfinden. Schon die kleinen System-Tools wie Xteq X-Setup, XP-AntiSpy und TweakUI bieten soviele Möglichkeiten, oder um noch nicht mal so hoch zu greifen: Windows selbst mit Explorer --> Ordneroptionen, MS Config und Systemsteuerung, bieten soviele Einstellungsmöglichkeiten, dass eine Systemkonfiguration für einen Komplett-Durchlauf Wochen benötigen würde. Wenn Du das einem DAU zumuten willst, damit er sein Admin-Konto nicht zum Ausführen von Spielen missbraucht, dann wünsch ich Dir viel Glück ...

Die Diskussion Windows vs. Linux ist hier fehl am Platz. Es geht einzig alleine um Windows. Äh, was machst du die ganze Zeit am Rechner, wenn ich fragen darf? Und ich hege die Vermutung, wenn du unter Windows schon so lange brauchst, dann wirst du bestimmt genauso lange unter Linux brauchen.

Zitat:
Ich werde auch weiterhin meine Software so schreiben, dass Sie im Programme-Verzeichnis arbeitet, ABER sich selber drum kümmert, dass Sie die nötigen Rechte dafür bekommt. Das Windows-Verzeichnis ist von je her tabu für meine Software, da dieses Verzeichnis wirklich nur für das System da ist; Der Name "Programme"-Verzeichnis schreit ja regelrecht schon nach einer derartigen Nutzung :evil:

Ja, um die Exe und Dateien, die zum Programm gehören dort abzulegen aber auch nicht mehr. Ich hoffe, das war nicht ernst gemeint. An den Rechten eines Ordner oder von Dateien darf einzig und alleine der Adminsitrator des Rechners was ändern dürfen.

Zitat:

user profile iconPopov hat folgendes geschrieben:
Dafür gibt es entweder die Registry, wenn es sich um INI Informationen handelt, oder das Anwendungsdaten-Verzeichnis.

Wow ... Die Registry!!! :twisted: Da kann ich mein Programm auch gleich seine Daten ins Temp legen lassen und das Löschen auskommentieren. Hat genau den gleichen Nutzen! Die Registry ist zwar schön und gut angedacht, aber selbst das haben viele ja noch nicht kapiert ...
Hast Du Dir schonmal angeguckt, wie gründlich einige Setups\Uninstaller arbeiten ??? 1000 Dinge reinschreiben, einwas wieder Löschen (den Uninstall-String, damit der Uninstaller nicht mehr aufgeführt wird. Da kann ich auch gleich den Ordner im Programm-Verzeichnis löschen, in dem die INI-Dateien liegen :P

Ein gutes Setup gehört genauso zum Programm, wie das Programm selber, leider wird das immer noch vernachlässigt oder es ist kein Geld mehr da. :-?

Puh, ich habe die Lust verloren und außerdem kommt jetzt die Wiederholung von Enterprise. ;)


Delete - Mo 02.05.05 09:34

user profile iconLuckie hat folgendes geschrieben:
Zitat:

Gut. Ist alles in eine Funktion auslagerbar, aber wirklich vorteilhaft ist das doch auch nicht, dass man an tausend Stellen in seinem Programm suchen muss, um seine Verwaltungsdinge zu ändern:
- Funktion zum auslesen von Systemverzeichnisnamen
- Funktion zum ermitteln des Anwendungsdaten-Verzeichnisses
- Funktion zum ermitteln des INI-Dateinamens für systemweite Einstellungen
- Funktion zum Ermitteln des INI-Dateinamens für userspezifische Zugriffe
- Funktionen zum Lesen und Schreiben der Daten
Da wird der Source zum Verwalten der Dinge sehr schnell sehr umfangreich. Ich glaube, da sollte mal endlich ein einheitlicher Standard gebaut werden, der dies sehr stark vereinfacht und INI-Dateien automatisch in den Anwendungsdatenordner anlegt, am besten mit angabe lokal oder global ...

DA GEHÖREN SIE NICHT HIN! Warum nicht, wurde schon oft genug erwähnt im Thread.

Beziehst du dich auf den fett markierten Anwendungsdatenordner? Da gehören sie schon hin, allerdings nicht direkt, sondern man sollte natürlich einen eigenen Unterordner erstellen. Wobei ich der Meinung bin, dass man für die von Ben genannten Zwecke notfalls auch ein paar Hilfsroutinen schreiben kann, die (mit passenden Steuerparametern aufgerufen) das jeweils richtige Verzeichnis zurückliefern. Muss ja keine Klasse sein. Als wirkliches Probleme sehe ich die Auflistung also nicht. Wäre vllt. was für die Unit-Sparte. ;)

Zitat:
Zitat:
Ich werde auch weiterhin meine Software so schreiben, dass Sie im Programme-Verzeichnis arbeitet, ABER sich selber drum kümmert, dass Sie die nötigen Rechte dafür bekommt. Das Windows-Verzeichnis ist von je her tabu für meine Software, da dieses Verzeichnis wirklich nur für das System da ist; Der Name "Programme"-Verzeichnis schreit ja regelrecht schon nach einer derartigen Nutzung :evil:

Ja, um die Exe und Dateien, die zum Programm gehören dort abzulegen aber auch nicht mehr. Ich hoffe, das war nicht ernst gemeint. An den Rechten eines Ordner oder von Dateien darf einzig und alleine der Adminsitrator des Rechners was ändern dürfen.

Es besteht auch die Möglichkeit, dass man während der Installationen einen Unterordner im Programmverzeichnis anlegt, der für alle Mitglieder der Gruppe Benutzer beschreibbar ist. Das Prinzip hatte ich bspw. bei Chris´ MovieOrganizer mal benutzt. Installieren konnte das Programm nur der Admin, aber ein Hilfstool im NSIS-Setup hat dafür gesorgt, dass der (ich nenne ihn mal) Profile-Ordner allgemein erreichbar war. Beim Start hat der MovieOrganizer dann den aktuellen Benutzernamen ermittelt und einen separaten Ordner in diesem Profilverzeichnis erstellt. So hatte jeder Benutzer sein eigenes Verzeichnis, aber bei der Deinstallation wurde auf Wunsch alles gelöscht. Wie gesagt, man kann es auch so machen.

Zitat:
Ein gutes Setup gehört genauso zum Programm, wie das Programm selber, leider wird das immer noch vernachlässigt oder es ist kein Geld mehr da. :-?

Nix für ungut, aber das sagt der Richtige ... :mrgreen: Oder habe ich die Setups für deine Free- und Shareware bisher übersehen? ;)


jasocul - Mo 02.05.05 09:57

Die Beiträge sind mir zu lang. Das lese ich nicht mehr alles durch.
Ich will mich jetzt mal "outen":
Eine zeitlang habe ich Einstellungen zu einer Anwendung (sowohl Anwendungsspezifisch, wie auch Anwender-Einstellungen) in der Registry gespeichert.
Dann habe ich viele Topics gelesen, die sinngemäß besagten: "Anwendungen, die ungefragt meine Registry benutzen, installiere ich nicht". Mal abgesehen davon, dass das gar nicht immer festzustellen ist, kann ich das teilweise nachvollziehen. Dann dürfen diese Anwender aber auch kein MS-Office-Produkt installieren.
Also habe ich einen Schritt zurück gemacht und verwende INIs. Bei einigen Komponente kann der Programmierer sogar wählen, was er möchte.
Die INIs sind zur Laufzeit aber grottenlangsam, da diese ja nicht beim Systemstart eingelesen werden.. Na gut, nicht zu ändern.
Bisher speichere ich die INIs im Anwendungsverzeichnis. Das halte ich bei Programmeinstellungen für akzeptabel. Nun gibt es aber auch Anwender-Einstellungen zum Programm. Und hier kommt mein eigentliches Outing: Bisher war ich zu faul, dieses Verzeichnis festzustellen! Ich habe dafür keine Funktion gefunden. Ich habe bisher auch nicht großartig danach gesucht. Gibt es die überhaupt? Darum werden auch diese Daten im Programm-Verzeichnis gespeichert.

Im Grunde halte ich beides für richtig. Die korrekte Mischung machts. Wenn Grundeinstellungen für die Anwendung erforderlich sind, sollten die auch beim Programm stehen. Die Anwender-Einstellungen sollten wirklich im Anwender-Verzeichnis stehen, da der nächste Anwender evtl. andere benötigt.
Das Speichern in der Registry ist allerdings einfacher, da Delphi bei Nutzung der Registry standardmäßig HKCU verwendet.


Amiga-Fan - Mo 02.05.05 10:06

Zitat:
Bisher speichere ich die INIs im Anwendungsverzeichnis.


Habe ich bisher auch so gemacht. Aber ich habe es jetzt umgeändert. Wegen der Funktion zum Finden des Anwendungsdatenverzeichnisses: das habe ich zuhause schon, weiß ich aber nicht im Kopf. Müsste sich aber doch auch über die suche hier finden lassen - ich meine eine direkte Delphi-Funktion dafür existiert auch gar nicht... (Delphi hat noch zuviele Lücken finde ich, zu oft muss man noch direkt die winapi benutzen...)

Ich finde es aber auch nicht schlimm, wenn der Admin die Einstellungen vornehmen muss. Und man ansonsten mit Default-Einstellungen leben muss. Das Thema wird hier ein bisschen aufgebauscht, meine ich. Von einem Nichtfunktionieren kann doch nicht die Rede sein. Natürlich sollte das Programm dann eine ordnungsgemäße Fehlermeldung ausgeben (beim versuch die konfig zu ändern, laufen sollte es auch so).

Ini-Dateien finde ich übrigens besser als etwas in der Registry zu speichern.


Delete - Mo 02.05.05 10:58

user profile iconjasocul hat folgendes geschrieben:
Wenn Grundeinstellungen für die Anwendung erforderlich sind, sollten die auch beim Programm stehen.

Du bist dir aber darüber im Klaren, dass man auf einem korrekt eingestellten Windows diese Grundeinstellungen nicht ändern kann; wenn wir mal davon ausgehen, dass das Programm wie üblich in "Programme\Meine Anwendung" installiert worden ist, und dass der Benutzer, der es gerade verwendet, keine Schreibrechte in diesem Ordner hat.

Noch mal SharpDevelop: Da gibt es auch gewisse Grundeinstellungen, die AFAIK in einer Datei im Programmordner liegen. Auf die Weise erscheinen bspw. bestimmte Pads unten und nicht rechts oder links am Rand. Aber gespeichert werden Änderungen dieser Grundkonfiguration dann wieder im Profilordner des angemeldeten Benutzers.


Christian S. - Mo 02.05.05 11:06

Hallo!

Ich bin inzwischen dazu übergegangen, die Nutzereinstellungen meiner Programme nicht mehr in der Registry, sondern im Profilordner (in einem Unterordner) des Nutzers zu speichern. Hauptproblem bei Verwendung der Registry war die Deinstallation: Jeder Nutzer kann seine Einstellungen im Programm machen, sie werden in der Registry dann irgendwo in HKCU gespeichert. Soweit, so gut.

Nun will der Administrator dieses Programm deinstallieren. Sind die anderen Nutzer nicht angemeldet, so sind ihre Registry-Einstellungen auch nicht geladen, sind noch nicht einmnal in HKEY_USERS zu finden! Es gibt bei der Deinstallation also keine Möglichkeit, auch die Profile von nichtangemeldeten Nutzern zu säubern! Das provoziert doch förmlich Leichen in der Registry!

Daher bin ich dazu übergegangen, die Einstellungen im Profilordner zu speichern. Dort hat der Nutzer garantiert Zugriff und der Administrator bei einer Deinstallation ebenfalls.

Grüße
Christian


jasocul - Mo 02.05.05 11:10

user profile iconMathiasSimmack hat folgendes geschrieben:
user profile iconjasocul hat folgendes geschrieben:
Wenn Grundeinstellungen für die Anwendung erforderlich sind, sollten die auch beim Programm stehen.

Du bist dir aber darüber im Klaren, dass man auf einem korrekt eingestellten Windows diese Grundeinstellungen nicht ändern kann;

Ja. Es geht definitiv nur um Einstellungen, die bei der Installation durchgeführt werden müssen. Danach genügen die Lese-Rechte. Diese Einstellungen sind für alle User identisch.


Tino - Mo 02.05.05 11:12

Hallo!

Hier geht es, auch wenn der Titel des Topics das nicht verrät, um das von Windows vorgesehende Anwendungsverzeichnis welches von Anwendungen oft nicht benutzt wird und die damit eventl. auftretenden Probleme. Hier geht es nicht um Hacken und auch nicht ob Windows sicherer geworden ist...

Also bleibt bitte beim Thema und das ohne jemanden als Dumm zu bezeichnen!

Gruß
Tino


Stefan.Buchholtz - Mo 02.05.05 11:13

user profile iconHeiko hat folgendes geschrieben:

Also ich versuche inzwischen nix mehr in die Registry zu schreiben, da ich damit schon schlechte Erfahrungen gemacht habe. Denn die Programme die bei mir zu Hause ordentlich funktionieren, funktionieren auf den Schulrechnern nicht mehr, da ich keine Rechte habe in diesen zu schreiben. Außerdem braucht Windwos länger zum hochfahren, wenn die Registry immer größer wird. Der größte Nachteil bei der Registry ist aber, wenn dumme Anwender, zum löschen einer Anwendung, nicht die Uninstall-Funktion nehmen, sonder nur den Programmverzeichnisordner löschen, das immer Reste in der Registry bleiben, und damit den PC vollmüllen.


Ja - ich bin auch kein Freund der Registry. Ich nehme normalerweise inzwischen XML-Konfigurationsdateien im Programmverzeichnis für Einstellungen, die für alle User gelten sollen (z.B. Adresse des DB-Servers). Da wir in meiner Firma hauptsächlich datenbankorientierte Software schreiben, packen wir benutzerspezifische Einstellungen in die DB - dann hat der User die, egal auf welchen Rechner er arbeitet. Ansonsten das benutzerspezifische Anwendungsdaten-Verzeichnis.

user profile iconHeiko hat folgendes geschrieben:

Hast du dir mal Gedanken gemacht, was passieren würde, wenn Windows nur einen eingeschränkten User erstellen würde?
1. Keiner könnte mehr etwas installieren, da keiner die Rechte hat sich zum Admin "umzubennen" (es gibt ja kein Admin auf dem Rechner)
2. Nach der Installation von Windows sind nun einmal immer die Admins dran, da sie ja Windows auch installiert haben.


Bei Mac OS X z.B. funktioniert es ja auch: Der "echte" Admin-Account (root, ist schließlich ein Unix-System) ist gesperrt. Ein Benutzer mit Admin-Rechten hat Schreibrechte auf das Programm-Verzeichnis, aber nicht auf System-Verzeichnisse. Ein normaler Benutzer hat nur Schreibrechte in seinem Benutzer-Verzeichnis. Wenn man etwas tun will, für das man keine Rechte hat, geht ein Login-Dialog auf - wenn man sich da als Admin-Benutzer anmeldet, wird die Aktion durchgeführt.

Stefan


hansa - Mo 02.05.05 13:37

Was ich hier so lese, das bekräftigt mich in dem Vorhaben, die Registry nicht zu benutzen. Habe mal nachgeschaut, wieviele Inis ich tatsächlich brauche. Es sind zwei. In der einen sind Grundeinstellungen gespeichert, die sich selten ändern, die werden beim Programmstart im Prinzip also nur gelesen. Theoretisch könnte ich die auch in die DB schreiben. Die andere enthält die Fensterpositionen, ist also User-spezifisch. Warum soll ich das nun in die Registry schreiben ? Um dem User dadurch erhöhte Startzeiten, höheren Speicherverbrauch usw. zu verursachen ? Daß er das Programm als Demo lieber gar nicht installiert ? Man stelle sich mal folgendes vor : 2 Mann wechseln die Schreibtische, haben aber immer noch den fast gleichen Arbeitsbereich. Aber nur fast !! Der eine macht mit MEINEM Programm immer noch das gleiche wie vorher, alles andere ist anders. Wie kann der jetzt nur seine Fensterpositionen mitnehmen und ansonsten alle Einstellungen des Vorgängers übernehmen ? Ganz einfach, er kopiert die INI von seinem alten Rechner. Die Registry läßt er, wie sie eben vorgefunden wird.

Noch was : selbst Popov dürfte zumindest erahnen, daß die DAUs von heute zumindest ihren Wortschatz bereichert haben. In diesem ist mittlerweile auch das Wort Registry ab und zu zu finden. Und zwar in einem negativen Zusammenhang. Von meinen 5.000 CDs werden wohl 1.000 nur deswegen installiert, weil ich versichere, nicht auch noch an der Registry rumzufummeln, wie eben die anderen Möchtegern Programmierer. :mrgreen:

Moderiert von user profile iconTino: Hinweise auf die schulische Ausbildung entfernt.


Tino - Mo 02.05.05 13:47

@Popov und BenBE: Habt Ihr nicht meinen Beitrag gelesen?

Edit: Die entsprechenden Beiträge (Viren, Sicherheit in Windows, etc) von Popov und BenBE habe ich entfernt.


Popov - Mo 02.05.05 14:12

user profile iconTino hat folgendes geschrieben:
@Popov und BenBE: Habt Ihr nicht meinen Beitrag gelesen?


Schon, aber irgendwas muß man ja antworten.

Aber, soweit du es nicht entgültig gelöscht hast, kannst du das Thema als extra Thread erstellen. Ich hab nichts dagegen darüber zu sprechen, es sollte aber ein extra Thread sein, weil er mit diesem nichts zu tun hat. Sonst aber habe ich nichts dagegen.

Es würde mich sogar interessieren was BenBE darüber schreibt, dar er ein begabter Hacker ist. Aus sowas kann man auch lernen.


Popov - Mo 02.05.05 14:38

user profile iconhansa hat folgendes geschrieben:
[...], weil ich versichere, nicht auch noch an der Registry rumzufummeln, wie eben die anderen Möchtegern Programmierer. :mrgreen:


Hmm, ob ich damit gemeit bin? :gruebel:

Hansa, du verstehst trotz so viele Beiträge anscheinend immer noch nicht um was es geht. Wenn du ein kleine Tool schreibst was nur du oder deine Freunde nutzen werden, dann ist es egal wo du deine INI schreibst. Solche Programme werden selten installiert und landen noch seltener im Programme Verzeichnis.

Anscheinend verstehst du es immer noch nicht, daß es in deinem Sinn ist es so nicht zu tun, wenn du richtige Programme schreibst und sie richtig installierst. Ein Beispiel: das allgemein bekannte Trillian. Seine Einstallungen schreibt es im eigenem Ordner. Aber jede Einstellung die ich im Eingeschränktem Konto vornehme geht ins Nichts. Wenn ich einen neuen Kontakt hinzufüge, dann wird er nicht gespeichert. Dazu muß ich das Konto wechseln, was eigentlich nicht sein müßte wenn Trillian es richtig gemacht hätte und seinen Einstallungen nicht im Programme Ordner speichern würde. Eigentlich disqualifiziert sich Trillian dadurch von meinem System. Aber Trillian verzeihe ich es, oder zumindest lasse ich es drauf. Aber dieses Privileg gestehe ich nicht jedem Programm zu. Eigentlich stehe ich kurz davor OpenOffice 1 von meinem System zu schmeißen, weil es auf das Programme verzeichnis zugreift. Aber ich warte noch auf die Version 2.

Was aber hast du anzubieten, daß ich dein Programm im Admin Modus ausführen würde. Das mache ich nicht mal mit Trillian. Der kriegt im Admin Modus höhstens ein Kontakt hinzgefügt. Sein Glück, daß er sonst keine Probleme bereitet.

Es geht hier also nicht um dich hansa, und ob du weiterhin deine INIs in deinem Ordner speichern wirst. Es geht darum, daß immer mehr User, und ich hoffe, daß ab Longhorn es alle User sein werden, mit eingeschränkten Rechten arbeiten werden. Wenn du nichtfunktionierende Programme schreiben willst, dann mach weiter wie bisher. Hier kann es egal sein. Egal, weil ich schon im ersten Beitrag geschrieben habe, daß es hier nicht um Hobbyprogrammierer geht, die ein Programm für sich und drei Kumpels schreiben.


Timosch - Mo 02.05.05 14:45

Irgendwie spricht mir das ganze hier aus dem Herzen. :-)

Mich stört es auch extrem, wenn Programme bei der Installation versuchen (beziehungsweise nicht nur versuchen, falls man Admin-Rechte hat), in den Win-Ordner zu schreiben.
Aber noch mehr stört es mich, wenn ein Programm, das ich nur mal gerne ausprobieren möchte, gleich völlig unnötige Daten (Position des Fensters am Bildschirm) in der Registrierung (womöglich gleich unter HKEY_LOCAL_MACHINE) speichert. Bei Win98 gibt es nämlich einen Bug: die Registry gibt nie wieder Speicherplatz frei (außer man löscht die Schlüssel mit speziellen Programmen). Jetzt mal ganz abgesehen davon, dass die Mehrzahl der Softwarehersteller immer noch nicht in der Lage zu seien scheinen, einen Uninstaller zu schreiben, der auch wirklich alles löscht.

So, das war jetzt im Vergleich ein recht kurzer Beitrag...


Delete - Mo 02.05.05 14:57

user profile iconTimosch hat folgendes geschrieben:
Jetzt mal ganz abgesehen davon, dass die Mehrzahl der Softwarehersteller immer noch nicht in der Lage zu seien scheinen, einen Uninstaller zu schreiben, der auch wirklich alles löscht.

Ja, das ist eben die Bequemlichkeit dieser Leute.

Aber: Benutzerbezogene Daten im Profilordner bzw. im HKCU-Schlüssel der Registry lassen sich nun mal naturgemäß nie vollständig löschen, weil nur einer das Programm deinstallieren kann. Und darum werden dann maximal dessen Benutzerdaten entfernt. Lösung: Ein kleines Tool zum Saubermachen schreiben und mit dem Setup ausliefern und in der Programmdokumentation/Readme darauf hinweisen.


Amiga-Fan - Mo 02.05.05 15:17

Zitat:
Es geht darum, daß immer mehr User, und ich hoffe, daß ab Longhorn es alle User sein werden, mit eingeschränkten Rechten arbeiten werden.


naja das wird sich noch zeigen. Ob damit alle DAUs privat klarkommen. Und dann wird es sicher wieder sowas wie Longhorn Light geben, mit mangelnder Benutzerverwaltung.

Darf man fragen wieviele Programme bereits auf deiner Blacklist sind? :D


delfiphan - Mo 02.05.05 15:22

Hat jemand Lust, einige "korrekt" programmierte Beispiele bei den FAQs zu posten? Wär doch noch gut..


Popov - Mo 02.05.05 15:33

@Mathias

Ich hab mal ein Programm gesehen das eine relativ nette Idee hatte. Unter dem Menü Extras gab es einen Menüpunkt "Registry Einträge entfernen". Dieses Programm war eigentlich ein Programm das nicht installiert werden mußte, aber dennoch die Registry nutzte. Mit diesem Menü Punkt hat es dann alle eigenen Einträge entfern.

Aber ich muß zugeben, auch wenn es nicht nicht zum Thema gehört, daß ich die Registry Feindlichkeit nicht verstehe. Hier sollten immer zwei Bereiche unterschieden werden. Der eine dient dazu das Programm irgendwie im System einzutragen. Einfaches Beispiel ist die Datei Erweiterung. Wenn ich ein Programm erstellt habe und dieses Dateien ertellt, dann muß diese auch über die Endung startbar sein. Das ist nur eine von vielen Notwendigkeiten den Registry Part zu beschreiben, der einen Einfluß im System hat. Weiteres nettes Beispiel wäre WinZip, daß abhängig noch selektierten Dateien eine angepaßtes Explorer Kontextmenü hat. Sowas kann man nicht mit INIs erledigen. Hier muß man in die Registry schreiben. Der zweite Bereich der Registry sind Einstellungen die gespeichert werden müssen. Ob man die jetzt in einer INI im Anwendungsdaten Ordner speichert oder in dem HKCU Bereich der Registry, daß ist eigentlich egal. Ich bevorzuge die Registry, weil ich weiß, daß es nur eine Handvoll Einstallungen sind. Die machen die Registry schon nicht langsam.

Dieser Kampf gegen die Registry und vor allem um den HKCU Bereich der Registry erinnert mich an Sicherheitsforen, wo "Profis" den DAUs Tipps geben wie sie ihr System sicher machen können: Windows installieren, eine Image erstellen und wenn wenn sich ein Schädling findet, dann alle Festplatten formatieren (vorher am besten nocht neu partitionieren) und dann die Image neu aufspielen. Kein Hinweis auf Prävention, bis auf skurrile Scripts, die aber nicht gegen Schädlinge helfen. Aber dieses Wissen wird allgemein als Non Plus Ultra angesehen. Auch wenn es nur Halbwissen ist. Dabei ist es so einfach sein System zu schützen. Die paar Einstellungen in der Registry werden das System nicht langsam machen, denn der HKCU wird nicht beim Booten genutzt. Erst später beim Anmelden. Nur diesen Unterschied verstehen einige anscheinend nicht.


Amiga-Fan - Mo 02.05.05 15:42

Zitat:
Dieser Kampf gegen die Registry und vor allem um den HKCU Bereich der Registry erinnert mich an Sicherheitsforen, wo "Profis" den DAUs Tipps geben wie sie ihr System sicher machen können: Windows installieren, eine Image erstellen und wenn wenn sich ein Schädling findet, dann alle Festplatten formatieren (vorher am besten nocht neu partitionieren) und dann die Image neu aufspielen.


ja jetzt ist aber genug missioniert. Von einem Kampf kann nicht die Rede sein. Für mich gesprochen: Ich mag die Registry halt nicht, punkt. Mir egal wenn mich dann jemand nicht als professionellen Programmierer ansieht. Bei manchen Profis ist ja nicht mal Delphi als prof. Entwicklungsumgebung anerkannt... Ganz ehrlich, ich habe von sogenannten "profis" schon viel schlimmeres gesehen (was man so nicht machen sollte)...


Delete - Mo 02.05.05 16:04

user profile iconPopov hat folgendes geschrieben:
Ich hab mal ein Programm gesehen das eine relativ nette Idee hatte. Unter dem Menü Extras gab es einen Menüpunkt "Registry Einträge entfernen". Dieses Programm war eigentlich ein Programm das nicht installiert werden mußte, aber dennoch die Registry nutzte. Mit diesem Menü Punkt hat es dann alle eigenen Einträge entfern.

Das ist auch eine gute Idee, aber das wäre für mich nur ein Bonus. Im Heimbereich, wo man selbst Admin und Benutzer ist, da mag´s gehen. Man entfernt damit erst die Einträge, bevor man die Software dann endgültig deinstalliert. Im Firmenpool sollte es dann aber separate Reinigungstools geben, die vllt. allgemein verfügbar sind, und mit denen der User irgendwelche Einstellungen entfernen kann, nachdem der Admin die Software deinstalliert hat. :)

Ich habe mir mal eins für dieses FRAPS-Ding geschrieben, weil ich auch gestaunt habe, was nach der Deinstallation alles noch zu finden war. Und das war eine DLL, eine Verknüpfung und ein paar Werte in HKLM. :roll:


Popov - Mo 02.05.05 16:06

user profile iconAmiga-Fan hat folgendes geschrieben:
Darf man fragen wieviele Programme bereits auf deiner Blacklist sind? :D


Ich zähle sie eigentlich nicht. Die unterscheiden sich aber in bekannte Software und sonstige Software. Die "sonstige Software", also Software die keinen bekannten Namen hat, fliegt eigentlich sehr schnell von meinem Rechner. Da braucht es nur eine Fehlermeldung zu geben, weil sie ein Zugriff auf eine INI oder Windows hat, und schon ist sie weg. Da liegen zwischen der Installation und Deinstallation gerade mal zwei Minuten. Die bekannten Software lasse ich eventuell paar Stunden auf dem Rechner, vorausgesetzt ich habe keine Alternative. Das bedeutet aber nicht, daß sie drauf bleibt. Ist mit ein oder zwei Zugriffen die Sache erledigt, dann bleibt es drauf. Sonst fliegt es runter.

Eine Schwarze Liste habe ich nicht. Eventuell im Gedächtnis, aber sonst nichts schriftliches. Ein nettes Beispiel der viele hier betrifft ist Delphi 3. Auch Delphi 3 versucht in einem Programme Unterverzeichnis Projekte anzulegen. Da gibt es Probleme und man muß vorher das Projekt sonstwo speichern. Auch gibt es Probleme wenn man Delphi 3 als Admin installiert, später aber im Eingeschränktem Konto arbeiten will. Die Komponenten Leiste fehlt. Hier muss die Registry korrigiert werden. Aber Delphi 3 ist eins von den Programmen wo man bereit ist etwas Arbeit zu investieren.

Wenn dich aber Programme interessieren die Probleme bereiten, dann kann ich dir http://www.noadmin.de empfehlen. Geh da in das Forum und du wirst viele Programme sehen die mit Eingeschränkten Konten Probleme haben.

Zitat:
Für mich gesprochen: Ich mag die Registry halt nicht, punkt.


Das ist nicht das Problem. Du magst die Registry nicht? Dann bruchst du sie auch nicht zu nutzen. Hauptsache ist du schreibst deine Sachen nicht in eine INI die du in deinem Programm Ordner hast. Microsoft und Windows bieten da Ausweichmöglichkeiten. Das immer wieder genannte Anwendungsdaten Verzeichnis ist der Ort der von Microsoft dazu bestimmt wurde, da die Programmspezifischen Daten abzulegen. Wer also die Registry nicht mag, der hat eine legale und hochofizielle Ausweichmöglichkeit.

delfiphan hat folgendes geschrieben:
Hat jemand Lust, einige "korrekt" programmierte Beispiele bei den FAQs zu posten? Wär doch noch gut..


Was verstehst du unter einem Beispiel? Ein Beispiel wo das Programm auf die Registry zugreift oder wo es seine INI im Anwendungsdaten Ordner ablegt?

Das kann ich dir sehr schnell schreiben, da ich bereits eine Unit habe die so arbeitet. Da hat man die Wahl zwischen INI im eigenem Programmverzeichnis, der Registry oder der INI im Anwendungsdaten Ordner.


Stefan.Buchholtz - Mo 02.05.05 16:10

user profile iconPopov hat folgendes geschrieben:
@Aber ich muß zugeben, auch wenn es nicht nicht zum Thema gehört, daß ich die Registry Feindlichkeit nicht verstehe. Hier sollten immer zwei Bereiche unterschieden werden. Der eine dient dazu das Programm irgendwie im System einzutragen. Einfaches Beispiel ist die Datei Erweiterung. Wenn ich ein Programm erstellt habe und dieses Dateien ertellt, dann muß diese auch über die Endung startbar sein. Das ist nur eine von vielen Notwendigkeiten den Registry Part zu beschreiben, der einen Einfluß im System hat. Weiteres nettes Beispiel wäre WinZip, daß abhängig noch selektierten Dateien eine angepaßtes Explorer Kontextmenü hat. Sowas kann man nicht mit INIs erledigen. Hier muß man in die Registry schreiben. Der zweite Bereich der Registry sind Einstellungen die gespeichert werden müssen. Ob man die jetzt in einer INI im Anwendungsdaten Ordner speichert oder in dem HKCU Bereich der Registry, daß ist eigentlich egal. Ich bevorzuge die Registry, weil ich weiß, daß es nur eine Handvoll Einstallungen sind. Die machen die Registry schon nicht langsam.



Okay, an dieser Stelle kommen wir wieder in den Bereich Systemkrieg, aber da geb' ich trotzdem mal meinen Senf dazu: Ich halte die Registry einfach für eine schlechte Idee. Durch die Registry gibt es neben dem normalen Dateisystem noch eine zweite Ablagemöglichkeit für Informationen - natürlich primär Konfigurationsdaten - die aber erstmal unsichtbar und für den normalen User sehr undurchschaubar ist. Es ist bei vielen Registry-Einträgen nicht klar, zu welchem Programm sie gehören. Die meisten Uninstaller machen sich nicht die Mühe, alle Einträge ordentlich zu löschen. Wenn man Einträge manuell bearbeiten oder löschen möchte, muss man ein Extra-Programm bemühen, wo man als DAU sehr schnell was kaputt machen kann. Es gibt zu viele Stellen, wo sich ein Programm registrieren kann, um beim Systemstart automatisch aufgerufen zu werden, was von Spy- und sonstiger Malware auch weidlich ausgenutzt wird.
Und das ist alles unnötig - nichts von dem, was die Registry tut, wäre im normalen Filesystem nicht möglich gewesen. Wenn irgendwas geschwindigkeitskritisch ist, wie z.B. Zuordnung von Dateitypen zu Programmen, kann man dafür einen Cache anlegen.

Stefan


Phobeus - Mo 02.05.05 16:45

Nochmals an die Verteidiger der "Programmverzeichnis"-Variante. Ihr müßt nicht die Registry benutzen. Diese bietet sich zwar stark an, allerdings muss man diese nicht verwenden (siehe The Linux Way). Ihrer solltet Eure Programme aber multiuserfähig machen und diese Konfigurationsdateien ins Heimatverzeichnis des Anwenders anlegen. Dies reicht bereits aus um die Programme sicher vor fremden Zugriff zu schützen. Es sei noch einmal gesagt: Jene die Konfigurationen im Programmpfad ablegen sind letztendlich jene den Windows seinen Ruf verdankt... nämlich, dass jeder Windows-Nutzer Admin ist. Den spätestens wenn er nach der Installation als Admin seine Konfiguration unter einem anderen Profile ändern will und eine Fehlermeldung kassiert, dass er keinen Zugriff auf diese Datei hat (z.b. weil ein anderer Nutzer nicht will, dass jeder dran rumändert), ist das Dilemma komplett. Deswegen: Wenn keine Registry, dann in die Anwendungsdaten im Heimatverzeichnis.


Popov - Mo 02.05.05 16:48

@Stefan.Buchholtz

Siehst du, um das geht es hier die ganze Zeit. Im Eigeschränktem Konto, was die Regel beim Arbeiten mit einem System sein sollte, gibte es, bis auf den Autostart Ordner, keine Möglichkeit ein Programm so einzutragen, daß er sich selbst startet. Und sollte es ein Wizbold durch Tricks schwer möglich machen ein im Autostart Ordner eingetragenes Programm zu löschen, dann ist das mit dem Administrator Konto möglich. Schon ist das Problem beseitigt.

Die von dir genannten Probleme tauchen nur auf, wenn einer mit Adminrechten surft. Da haben die JScripts die Möglichkeit die Registry zu verändern oder den IE zu hijacken. Das Problem hier ist aber nicht Windows selbst, sonderen Microsoft, daß jedem pupligen Programm einen Systemprogramm Status verleihen und tief in das System eintragen. Da ist nicht die Registry schuld. Sie ist nur flexibel.

Wie gesagt, mit dem richtigen Kontotyp kann man, bis auf die HKCU, keinen Teil der Registry ändern (Außnahme, es wurde extra Rechte vergeben). Und diesen HKCU Teil der Registry findest du in deinem Benutzerordner. Die Registry ist also nicht wirklich das Problem.

Und das ist das Thema: Leute, schreibt die Programme richtig, dann können alle mit dem Eingeschränktem Konto arbeiten. Dann krigen sie auch keinen Hijacker ab usw.


Popov - Mo 02.05.05 17:46

Für alle die sich fragen wie man seine INI in den Anwendungsdaten Ordner kriegt, habe ich meinen EasyIni Beitrag im OpenSource Units Bereich um eine Unit erweitert. Mit dieser Unit arbeite ich bereits lange, habe sie aber hier nicht reingestellt. Es ist der Sehr einfach auf INI und REG zugreifen mit EasyIni und ... [http://www.delphi-forum.de/viewtopic.php?p=247902#247902] Beitrag. Die dritte Unit schreibt ihre INI in den Anwendungsdaten Ordner.

Bei dieser Variante kann man seine INI behalten und hat bei Eingeschränktem Konto keine Probleme.


delfiphan - Mo 02.05.05 18:11

user profile iconPopov hat folgendes geschrieben:
delfiphan hat folgendes geschrieben:
Hat jemand Lust, einige "korrekt" programmierte Beispiele bei den FAQs zu posten? Wär doch noch gut..


Was verstehst du unter einem Beispiel? Ein Beispiel wo das Programm auf die Registry zugreift oder wo es seine INI im Anwendungsdaten Ordner ablegt?
Hab zugegebenermassen nicht alle Beiträge komplett durchgelesen aber offenbar kann man ja vieles falsch machen. Ich dachte ursprünglicherweise an ein paar Zeilen und mit Funktionen wie deine SpecialDirectory. Deine 3 Units sind ziemlich viel Code :wink: ein bisschen ein Overkill mit den vielen Wrapperfunktion, welche bei jedem Zugriff die INI-Datei neu öffnen, aber für kleine Projekte, die nur wenige Einstellungen speichern müssen ist es super. Austauschbar und sofort einsetzbar.


Amiga-Fan - Mo 02.05.05 18:29

Zitat:
Den spätestens wenn er nach der Installation als Admin seine Konfiguration unter einem anderen Profile ändern will und eine Fehlermeldung kassiert, dass er keinen Zugriff auf diese Datei hat (z.b. weil ein anderer Nutzer nicht will, dass jeder dran rumändert), ist das Dilemma komplett.


es gibt dann aber immer noch die Möglichkeit, eine einzelne Anwendung mit Admin-Rechten auszuführen:D Ich meine das ist hier noch nicht erwähnt worden. Solange man nur selber dran sitzt ist das wohl nicht das problem..


Popov - Mo 02.05.05 18:44

@delfiphan

In Wirklichkeit ist es nicht viel Code. Erstens sind es fertige Units, es muß also nichts übertragen werden, sondern die Unit muß nur eingefügt werden. Zweitens sind es drei Units, die allerdings austauschbar sind und zueinander kompatibel. Es sieht alo nach mehr aus als es wirklich ist.

Ich gebe offen zu, daß das nichts für Projekte ist die Permanent Zugriffe auf auf die INI haben. Das wäre zu oft Objekte erstellen und wieder freigeben. Aber wann kommt das schon mal vor. In der Regel ist es doch ein gelegntliches abspeichern von paar Werten. Und das bremst das Programm nicht so aus.

Ich muß zugeben, daß eine von diesen Units es immer in mein Programm schaft. Eine Unit einbinden und schon kann ich in die INI speichern ohne mich um die TIniFile & Co. zu kümmern. Für mich ist es die am meisten benutze Unit die ich nutze.


Amiga-Fan hat folgendes geschrieben:
es gibt dann aber immer noch die Möglichkeit, eine einzelne Anwendung mit Admin-Rechten auszuführen:D Ich meine das ist hier noch nicht erwähnt worden. Solange man nur selber dran sitzt ist das wohl nicht das problem..


Das ist eigentlich keine gute Alternative. Zuerst ist es ein unnötiger Aufwand. Nur weil der Programmierer es nicht richtig gemacht hat, muß ich das Programm mit Adminrechten ausführen. Nicht wirklich gut. Wo es aber gefährlich wird, daß ist ein möglicher Buffer-Overflow. Läuft das Programm mit beschränkten Rechten, dann kann so ein Buffer-Overflow nicht wirklich gefählich werden. Läuft er aber mit Adminrechten, dann haben wir einen Schädling an Bord der alle Rechte hat.

Wenn du schon nach Alternativen suchst, dann ist dem Konto Schreibrechte auf den den Ordner geben eine bessere Alternative. Aber wozu soll ich als Admin einem User Schreibrechte zugestehen? Nur weil einer seine INI weiter im Ordner speichern will? Sowas ist ok für alte Programme, wie z.B. Delphi 3, aber bei neuen Programmen sollten die Programmierer es schon richtig machen. Es sit kaum Aufwand. Ich hab es dadurch gelößt, daß ich permanent eine extra Unit habe. Das können die Anderen eigentlich auch. Muß nicht meine sein, aber es ist nicht unnötig immer das Rad neu zu erfinden.


Phobeus - Mo 02.05.05 20:23

Zitat:
es gibt dann aber immer noch die Möglichkeit, eine einzelne Anwendung mit Admin-Rechten auszuführen:D Ich meine das ist hier noch nicht erwähnt worden. Solange man nur selber dran sitzt ist das wohl nicht das problem..

Ist es nicht schön, wie freiheitsliebend einige Leute sind? ;) Da schreibt man Stundenlang eine Applikation auf die die Welt gewartet hat und dann weigert sich der Nutzer diese zu betreiben, weil er sie nicht mit Admin-Rechten ausführen will. Jungs... Das ist nicht Euer ernst ;) Ich meine wir reden hier von einem technischen Vorgang, der sich vergleichen läßt mit "Schlage ich mein Frühstücksei auf oder enthaupte ich es." Allerdings rettet ihr damit vielleicht die eine oder andere Beziehung bzw. erspart dem einen oder anderen Kiddie Streit mit seinem Vater... Heutzutage werden viele PCs von mehren Nutzer genutzt und darauf sollte auch eine Applikation abzielen, zumal wenn der Aufwand minimalst ist. Den die meisten Entwickler werden stets von einem "One-User-System" ausgehen... denkt auch an jene, die nicht einen PC für sich alleine eigen nennen.


hansa - Mo 02.05.05 21:35

user profile iconPopov hat folgendes geschrieben:
Hmm, ob ich damit gemeit bin? :gruebel:


Na klar, wer sonst ? :mrgreen: Was soll ich denn sonst zu Deinem Kram sagen ?? Die Leute wollen eben keinen M$ Richtlinien-Schwachsinn haben. Die wollen, daß ihr Programm ihre Arbeit erleichtert. Gelingt das ists gut.


BenBE - Mo 02.05.05 21:54

user profile iconhansa hat folgendes geschrieben:
user profile iconPopov hat folgendes geschrieben:
Hmm, ob ich damit gemeit bin? :gruebel:


Na klar, wer sonst ? :mrgreen: Was soll ich denn sonst zu Deinem Kram sagen ?? Die Leute wollen eben keinen M$ Richtlinien-Schwachsinn haben. Die wollen, daß ihr Programm ihre Arbeit erleichtert. Gelingt das ists gut.


Und das ist schon die ganze Zeit meine Meinung ... dass Du (@Popov) meine Posts auch nach Aufforderung nicht liest, da dort jegliche Missverständnisse meiner Aussagen erläutert wurden, wie diese zu verstehen sind, ist nicht meine Schuld.

@Hansa: XP-Zertifikat hin oder her: Wenn man in den Möglichkeiten beschränkt wird, sein System einzurichten und zu konfigurieren, sucht man sich auswege, dass trotzdem alles Läuft. Ohne viel Wissen ist dies der Admin-Account, wenn man faul ist, und weiß, was man tut, tut's auch der Admin-Account. Wie gesagt: Bis auf paar Cookies bin ich seit einem Jahr Spyware- und Viren-frei ;-) (und arbeite trotzdem als Admin.


Popov - Mo 02.05.05 22:46

user profile iconhansa hat folgendes geschrieben:
user profile iconPopov hat folgendes geschrieben:
Hmm, ob ich damit gemeit bin? :gruebel:


Na klar, wer sonst ? :mrgreen: Was soll ich denn sonst zu Deinem Kram sagen ?? Die Leute wollen eben keinen M$ Richtlinien-Schwachsinn haben. Die wollen, daß ihr Programm ihre Arbeit erleichtert. Gelingt das ists gut.


Hansa, BenBE, ich will jetzt keinen Ärger mit Tino und deshalb ist das nicht an euch gerichtet, sondern ich quatsche nur so vor mich hin. Ich weiß nicht was ich sonst so machen soll. Es ist so allgemein gesagt :twisted:

Es ist nicht unbedingt eine Schande etwas blöde zu sein. Aber dann sollte man einfach sitzen bleiben und weise Nicken. Vielleicht merkt das keiner. Wer aber, nachdem er gemerkt hat, daß er in die Kaka gegriffen hat hier noch mit Sprüchen kommt wie z.B. "Die Leute wollen eben keinen M$ Richtlinien-Schwachsinn haben."... Ich meine wir sind hier Programmierer und viele machen das beruflich. Wenn einer nur den Ehrgeiz hat Hobbyprogrammierer zu sein und für sich zu Hause paar kleine Tools zu schreiben, dann ist das eine Sache. Aber hier gibt es auch Leute die das beruflich oder halbberuflich machen. Glaubt einer hier, daß diese Leute etwas von "Die Leute wollen eben keinen M$ Richtlinien-Schwachsinn haben " hören wollen. Doch, die wollen die haben, weil MS zwar einem viel Spielraum läßt, aber den irgendwann einschränkt. Es ist der Job eines Programmieres sich an Richtlinien zu halten. Dafür kriegen er Geld. Wenn ich einen Programmierer beauftrage für meine Firma was zu progen und es funktioniert nicht richtig, dann bezahle ich kein Geld. Keine Firma muß Geld muß Murks ausgeben. Und um das geht es hier bei zwei Leuten. Die versuchen hier mit allen Mitteln die Leute davon zu überzeigen weiterhin Murks zu machen. Was soll ich mich da noch unterhalten. Es ist ein freies Land und jeder hat die Freiheit sich als Trottel zu outen ;)


hansa - Di 03.05.05 02:16

user profile iconPopov hat folgendes geschrieben:
..Hansa, BenBE, ich will jetzt keinen Ärger mit Tino und deshalb ist das nicht an euch gerichtet, sondern ich quatsche nur so vor mich hin. Ich weiß nicht was ich sonst so machen soll. Es ist so allgemein gesagt :twisted:

Es ist nicht unbedingt eine Schande etwas blöde zu sein.


Ja Popov, dann rede nicht so einen Mist. :lol:

Hier gehts weiter :

user profile iconPopov hat folgendes geschrieben:
Glaubt einer hier, daß diese Leute etwas von "Die Leute wollen eben keinen M$ Richtlinien-Schwachsinn haben " hören wollen. Doch, die wollen die haben, weil MS zwar einem viel Spielraum läßt, aber den irgendwann einschränkt.


Wenn du damit was zu tun hast : der größte DAU wird davon nichts verstehen. Für den sind belanglose Statements völlig unsinnig. Der will nur, daß sein Programm geht. Sonst nichts.

user profile iconPopov hat folgendes geschrieben:
Keine Firma muß Geld muß Murks ausgeben. Und um das geht es hier bei zwei Leuten. Die versuchen hier mit allen Mitteln die Leute davon zu überzeigen weiterhin Murks zu machen.


Wenn auch ich damit gemeint bin, dann gilt noch folgendes : es dürfen nur Leute mitreden, die ein Programm vor längerer Zeit < 1990 verkauft haben. Alle anderen sollten sich raushalten, weil sie eben keine Erfahrung mit Halb-DAUs haben und lediglich Windoof kennen. 8)

user profile iconPopov hat folgendes geschrieben:
... Es ist ein freies Land und jeder hat die Freiheit sich als Trottel zu outen ;)


No comment. 8) :mrgreen:


Christian S. - Di 03.05.05 07:27

Wenn die Diskussion hier auf diese Weise weiter geht, werden wir den Thread schließen. Also entweder fangt Ihr mal wieder an, sachlich zu diskutieren oder Ihr könnt es ganz sein lassen. :mahn:


Stefan.Buchholtz - Di 03.05.05 09:50

user profile iconhansa hat folgendes geschrieben:

Na klar, wer sonst ? :mrgreen: Was soll ich denn sonst zu Deinem Kram sagen ?? Die Leute wollen eben keinen M$ Richtlinien-Schwachsinn haben. Die wollen, daß ihr Programm ihre Arbeit erleichtert. Gelingt das ists gut.


Registry-Benutzung hin oder her, grundsätzlich haben diese Richtlinien schon ihren Sinn: Wenn man sich dran hält - was ja leider teilweise nicht mal Microsofts Anwendungsentwickler tun - stellt man sicher, dass ein Programm wahrscheinlich auf zukünftigen Windows-Versionen noch problemlos läuft.
Wenn man sich mal ansieht, was in der letzten Zeit so aus dem Hause MS zu hören ist, sieht es wohl so aus, als ob sie die Doktrin "Kompatibilität mit alter Software um jeden Preis" über Bord geworfen haben. Ich denke, man wird ab Longhorn damit rechnen müssen, das ein Haufen Software, die sich nicht an die Richtlinien hält, einfach nicht mehr läuft. Schon SP2 hat ja etliche Programme zerlegt, weil MS endlich mal Sicherheit über Kompatibilität gestellt hat.

Stefan


Popov - Di 03.05.05 13:47

Registry ist doch nur eine Option. Ich nutze sie gerne, aber das müssen nicht andere auch tun. Die Möglichkeite einer INI besteht weiterhin, auch wenn sie veraltet ist. Die Frage ist nur wo sie gespeichert wird. Und es gibt einen Platz wo sie hin kann. Wer also nichts mit einer der Registry anfangen kann, der kann weiter mit der INI arbeiten. Dann bitte aber in den dafür vergesehen Ordner legen.

Die ganze Diskusion ist eigentlich etwas aus den Ruder gelaufen. Eigentlich war es eine Feststellung, daß viele professionelle Programme nicht korrekt funktionieren, weil viele Programmierer auch nach Jahren nicht mitbekommen haben, daß sie in das eigene Programmverzeichnis nichts schreiben dürfen. Ich hab es vielleicht deshalb früher gemerkt habe, weil ich von anfang an im Eigeschränktem Konto programmiert habe. Dadurch stellte ich früher gewisse Probleme und machte es richtig. Anscheinend programmieren in vielen Firmen die Programmierer immer noch im Adminmodus und kriegen dadurch einiges nicht mit. Ich kann mir sonst nicht vorstellen wieso so viele Programme Probleme bereiten.


FriFra - Fr 06.05.05 04:08

Ok, den "Fehler" mit den Konfigurationsdateien im Programmordner mache ich auch... ich werd es aber aus den genannten Gründen in Zukunft etwas anders (Anwendungsdaten) lösen.

Die Registry ist zwar eine Gute Sache, aber einen riesigen Vorteil haben ini's - man kann sie sehr leicht sichern. Klar, man kann Registry-Zweige Sichern und die *.reg files zurück importieren... Aber die meisten Datensicherungen basieren auf einfachem kopieren und eben weil so viele Programme nur in die Registry schreiben kann man die meisten Programme SO nicht sichern, sondern muss ein komplettes Image ziehen. Wäre es nicht herrlich "c:\programme\microsoft office" einfach auf eine CD zu kopieren und diese Kopie 1:1 zurückspielen zu können und alles läuft? ... geht aber leider nicht, weil diese Programme ihre Daten wild über die Registry verstreuen und ein vernünftiges Backup von nur diesem einen Programm somit unmöglich ist. Die Registry ist es doch, die eine lauffähige Kopie fertig konfigurierter Programme verhindert und den Anwender zwingt vollständige Images zu ziehen...


Phobeus - Fr 06.05.05 08:59

Aus genau diesem Grund gibt es unter Linux halt keine Registry, sondern nur Heimatverzeichnisse. Da sich die meisten Programme in diesem als versteckter Ordner anlegen und Ihre Einstellungen dort speichern, reicht das Heimatverzeichnis aus um ein fast vollständig konfiguriertes System auf einem fremden Rechner einzusetzen. Finde diesen Weg auch um ein vielfaches eleganter als die Registry. Die "Dokumente und Einstellungen" entsprechen diesem System ja weitesgehend (bis auf, dass man nicht so leicht umziehen kann, weil die meisten Systemprogramme nicht mitziehen) ;)


Amiga-Fan - Fr 06.05.05 10:36

Zitat:
Die Registry ist zwar eine Gute Sache, aber einen riesigen Vorteil haben ini's - man kann sie sehr leicht sichern.


genau. Was soll eigentlich an inis veraltet sein? Ob inis oder xml-dateien ist doch eigentlich uninteressant. Ich sehe da nur Textdateien.


delfiphan - Fr 06.05.05 12:54

Irgendwie noch witzig, dass das Projekteverzeichnis unter Delphi7 folgendermassen lautet:

C:\Program Files\Borland\Delphi7\Projects

Bei mir zu mindest.


Popov - Fr 06.05.05 14:26

user profile icondelfiphan hat folgendes geschrieben:
Irgendwie noch witzig, dass das Projekteverzeichnis unter Delphi7 folgendermassen lautet:

C:\Program Files\Borland\Delphi7\Projects

Bei mir zu mindest.


Stimmt. Das ist falsch, aber da sieht man, daß auch die großen Software Schmieden Schrott bauen. Allerdings ist das Programme Verzeichnis das kleinste Problem. Hier kann man als Admin allen Benutzern Schreibrechte an diesem Ordner geben. Ein gößeres Problem sind die Komponenten. Es reicht nicht eine Komponente im Adminmodus zu installieren. Das andere Konto wird die neuen Komponenten nicht haben. Man muß wirklich den Kontotyp ändern und im Konto selbst die Installation vornehmen.

user profile iconAmiga-Fan hat folgendes geschrieben:
Was soll eigentlich an inis veraltet sein? Ob inis oder xml-dateien ist doch eigentlich uninteressant. Ich sehe da nur Textdateien.


Die Hauptarbeit unter Windows 3.x und Windows 95 bestand für mich darin, daß ich permanent INIs aus dem Windowsverzeichnis entfernt habe. Es waren tausende INIs und alle wollten in das Windowsverzeichnis. Die Antwort mit der Registry war die Notbremse von Microsoft. Ob es die perfekte Bremse war, weiß ich nicht, aber sie hatte die Aufgabe die Flut an INIs zu stoppen. Auch damals schon hätten die Programmierer die INIs sonst wo speichern können. Haben sie aber nicht gemacht. Es ist also insoweit schon wahr, daß die INIs veraltet sind, als daß nach dem Willen des Betriebssystem Herstellers alle ihre INIs durch Registry Einträge abgelöst sein sollten. Hier sollte man wissen, daß auch Microsoft paar Jahre im Voraus denkt. Eine Verschmelzung von Windows NT und 9x war schon vor 1995 geplannt. Auch war geplannt, daß es die Sicherheit von Windows NT behällt. Bereits damals war klar, daß das Windows- und Programmeverzeichnis in Zukunft tabu für Schreibrechte sein werden. Die Aufgabe mußte also sein die INIs auf Windows wegzukriegen, aber nicht unbedingt in das Programmeverzeichnis zu drängen. Denn da würden sie in Zukunft keine Schreibrechte haben. Die Lösung war die Registry, die sich in den Systemteil und in den User Teil teilten. Auch wenn der User Teil der Registry bei Windows 95 noch im Windows Ordner lag, so ist es doch klar, daß nach einer gewissen Umerziehungszeit es reicht den Teil auszulagern und schon kann man das Windows Verzeichnis dicht machen. Fürs erste gab es also kein Platz für die INIs. Auf lange Sicht sollten alle möglichen Verzeichnisse geschlossen werden. Wohin nun mit der INI? Ich weiß nicht seit wann der Anwendungsdaten Ordner geplannt war, aber die einzelenen Windowsversionen unterscheiden sich doch. XP und 2000 lassen kein schreiben in den System Orndern zu, NT ein wenig, 9x und ME ist für alles offen. Wo soll man also seine INI speichern, damit das Programm auf allen Rechnern ohne Probleme läuft? Also die Registry hat dieses Problem nicht. Egal welche Version, der Weg mit der Registry ist für alle Versionen sicher. Ob also die INI als solches veraltet ist spielt erst einmal keine Rolle. Was Microsoft auf jeden Fall garantieren scheint ist die Tatsache, daß alle die für ihre Konfigurationsdaten die Registry nehmen, keine Probleme haben werden. Und ich gehe auch davon aus, daß es in Zukunft nicht anders sein wird. Wer sich heute noch für eine INI entscheidet, der kann nicht sicher sein, daß sein Programm auch in der nächsten Version funktionieren wird. Es scheint zwar so, als ob sich der Anwendungsdatenordner durchsetzen würde und auch der Anwendungsdatenordner für ALL USERS seinen festen Platz haben wird, aber ich erinnere, daß sogar Delphi 3 noch keine Konstante kannte für den ALL USERS Anwendungsdatenordner Ordner. Somit ist doch klar, daß es solches Programm zwar unter Windows XP problemlos funktionieren wird, aber bei Windows 9x vor die Wand laufen wird. Nein, es stimmt schon, die INI ist veraltet. Es finden sich war immer ein Plätzchen wo man die noch ablegen kann, aber das geht durchaus auf die Kompatibitität.

Ungeachtet dessen ist die Registry moderner. INI ist reine Textdatei. Zwar kann man hier auch andere Formate, als die üblichen Vier speichern, aber nur mit Aufwand. Die Registry läßt auch binäre Infos zu. Solange man aber nur kleine Programme schreibt ist das alles wohl kein großes Hindernis. Aber die Registry bietete nun mal Möglichkeiten, die die INI nicht hat.

user profile iconFriFra hat folgendes geschrieben:
Die Registry ist zwar eine Gute Sache, aber einen riesigen Vorteil haben ini's - man kann sie sehr leicht sichern. ...


Anscheinend denkt ihr immer noch in DOS Zeiten. Mal davon abgesehen, daß man von einem WinWord niemals ein Backup macht, würde das auch mit INIs nicht funktionieren. Zuerst erhebt Microsoft grundsätzlich alle seine Programme in den Status ein Systemprogramm zu sein und verändert deshalb mit solchen Programmen auch oft das System. Aber ignorieren wir das alles. MS Office installiert sein Programm nicht nur in das MS OFFICE Verzeichnis im Programme Ordner. Wann das so wäre, dann könnte man das wirklich sichern. Tatsache ist aber, daß bei einer solchen Installation auch tausende (oder etwas weniger) an DLLs und Co. über das System verstreut werden. Nicht wenige davon landen im System Verzeichnis von Windows. Wie du siehst ist die INI im MS OFFICE Verzeichnis das kleinste Problem. Ein drittel des Programms landen irgendwo anders. Dann bestehen die "INI" Einträge nicht nur aus paar Konfigurationsinfos. Ein Programm wie MS Office muß im System bekannt sein. Zuerst müssen die DLLs bekannt sein. Dann gibt es noch tausende andere Systemeinträge die Vorgenommen werden müssen. Das .DOC und .XML zu registrieren ist das kleinste Problem. Es würde nichts bringen sowas in seine eigene INI zu sichern, denn wenn überhaupt, dann gehört das in eine System INI. Was bleibt sind viellecht paar Infos, wie z.B. welche Position das Fenster zuletzt hatte und welche Datei als letztes geöffnet war. Aber das sind keine so tolle Informationen. Dein Wunsch die INI am MS Office zu halten kann nicht funktonieren. Wenn Microsoft mal beschließt "back to the Roots" und 100% seines Programms wie zu DOS Zeiten im Programm beläßt, dann könnte man darüber reden. Aber solange die Programmteile über das System verstreut werden, ist der Registry Part das kleinste Problem.

Und jetzt Off Topoc: Wieso macht man kein Backup von WinWord und anderen Programmen? Das was Microsoft irgendwann unter großem Tam Tam in die Welt brachte, hatte ich bereits zu Windows 3x Zeiten. Ich hatte ein Programme Verzeichnis und ein Datenverzeichnis. Und für mich war es immer klar, wenn ein Backup, dann nur Dateien. Microsoft hat sich mein System abgeguckt und es auch eingeführt. Was wir heute haben sind getrennte Bereiche. Zuerst haben wir das System Bereich. Das ist das Windows Verzeichnis. Dann haben wir das Probramme Bereich. Zu finden ... die Größeren unter euch wissen bereits was ich meine ... klar, im Programme Verzeichnis. Diese beiden Bereich sind keine Backupwerten Bereiche. Alles was in diesen beiden Bereichen drinn ist, gibt es in gepackter Form auf CDs im Schrank. Sollte es krachen, dann ist alles in zwei Stunden wieder hergestellt. Es ist also nur eine Frage der Zeit. Nichts was wirklich verloren ist. Das was weh tut, daß sind die Daten. Die müssen gesichert werden. Was kümmert uns ob Windows vorher in grün zu sehen war. Sowas kann man wieder einstellen. Was wichtig ist, daß sind lediglich die einzelnen "Eigene Dokumente" Ordner. Wenn man viel Platz hat, dann kann man auch den ganzen "Dokumente und Einstellungen" Ordner sichern, aber doch nichts was man sowieso schon auf CDs hat.

Und für die, denen zwei Stunden für die Wiederherstellung zu lange sind. Auch ich habe ein Windows XP installiert, alle Einstallungen vorgenommen, alle Treiber und Drucker installiert, alle wichtigen Programme installiert und dann eine Image auf CD gesichert. So spare ich mir eine Installation. Sonst aber mache ich doch nicht von Windows und den Programmen ein Backup.


uall@ogc - Fr 06.05.05 14:38

Bitte benutze das Wort "Einstellungen", es tut mir im hinteren Teil des Gehirns weh wenn ich "Einstallungen" nur lesen muss.
Welches Gehirn?


Amiga-Fan - Fr 06.05.05 14:39

Zitat:
Ein gößeres Problem sind die Komponenten. Es reicht nicht eine Komponente im Adminmodus zu installieren. Das andere Konto wird die neuen Komponenten nicht haben. Man muß wirklich den Kontotyp ändern und im Konto selbst die Installation vornehmen.


stimmt wie mir das schon auf den Sa** gegangen ist :D

abgesehen davon werden heutzutage häufig xml-dateien statt inis verwendet. Das ist irgendwie Jacke wie Hose. Selbst wenn inis wegfallen und man nicht xml verwenden will, lässt sich das einfache Schema einfach selbst implementieren.


Popov - Fr 06.05.05 14:53

user profile iconuall@ogc hat folgendes geschrieben:
Bitte benutze das Wort "Einstellungen", es tut mir im hinteren Teil des Gehirns weh wenn ich "Einstallungen" nur lesen muss.

Ok, auch wenn es nicht unbedingt einer Erwähnung wert war, da es sich hier wohl um einen Füchtigkeitsfehler handelt.

An dieser Stelle würde ich dicht bitten nicht:

Zitat:
... des Gehirns weh wenn ich "Einstallungen" nur lesen muss.

sondern

Zitat:
... des Gehirns weh wenn ich "Einstallungen" lesen muss.

Sowas tut mir im Hinterkopf weh.


Popov - Fr 06.05.05 14:57

user profile iconAmiga-Fan hat folgendes geschrieben:
...

abgesehen davon werden heutzutage häufig xml-dateien statt inis verwendet. Das ist irgendwie Jacke wie Hose. Selbst wenn inis wegfallen und man nicht xml verwenden will, lässt sich das einfache Schema einfach selbst implementieren.


Ich weiß. Trillian zum Beispiel speichert seine Einstallungen auch im XML Format, aber im Programme Verzeichnis. Für jede Einstellung muß ich in den Adminmodus gehen. Das netvt auf die Dauer.


uall@ogc - Fr 06.05.05 15:01

du hast es in den 4 seiten immerhin 6 mal falsch geschrieben und ich glaub kein einziges mal richtig
desahlb hab ichs auch geschrieben.

ist genauso wenn jemand "einzigstes" schreibt was es nicht gibt. wenns nen normaler fehler war weil zu schnell geschrieben oder so wärs mir ja egal.

nur damit etwas ontopic dazukommt

schreibe ich auch immer in den programme ordner, meine schwester selber hat nen eingeschänktes konto auf ihrem PC und trotzdem hat die extrem viele viren immer drauf wenn ich mal dran gehe, programme installiere ich dann aber halt auf D:\Programme wo diese dann was in ihren order schreiben können.
du hast hier ja 2 möglichkeiten vorgeschalgen und selbst die (meiner meinung nach) schlechtere gewählt - das schreiben in die registry. wenn ich meine halbwissenden (bereich PC) freunden sage sie sollen ein programm installieren was an der registry was ändert, lehnen die das ab weil sie zu oft erfahren haben das dadurch mal wieder was nicht funktioniert. lieber sind sie dann als admin unterwegs (ich übrigens auch)
ich würde mal sagen das es mehr leute gibt die ein programm nicht nutzen weil es was in die registry schreibt anstatt das man als admin eingeloggt sein muss damit es richtig funktioniert.


Amiga-Fan - Fr 06.05.05 15:18

Zitat:
Zitat:
Ein gößeres Problem sind die Komponenten. Es reicht nicht eine Komponente im Adminmodus zu installieren. Das andere Konto wird die neuen Komponenten nicht haben. Man muß wirklich den Kontotyp ändern und im Konto selbst die Installation vornehmen.

stimmt wie mir das schon auf den Sa** gegangen ist :D


hm will noch anmerken, das mein Kommentar nicht gegen das registrieren für jeden Anwender geht, sondern eher wegen dem umständlichen Registrationsprozess... am besten wäre immer ein install-programm. Aber das muß man ja nur einmal machen.


Popov - Fr 06.05.05 16:07

user profile iconuall@ogc hat folgendes geschrieben:
du hast es in den 4 seiten immerhin 6 mal falsch geschrieben und ich glaub kein einziges mal richtig [Punkt fehlt]
desahlb hab ichs auch geschrieben.


Du solltest solche Behauptungen nicht aufstellen, wenn das Nachprüfen so leicht ist. Mal von dem einem Mal abgesehen wo ich es mit Absicht geschrieben habe, und den x mal, wo es in Zitaten auftauchte, wurde "Einstallung(en)" von mir vier mal geschrieben. Dem stehen, bis zu deiner Bemerkung, neun mal "Einstellung(en)" gegenüber. Es ist also nicht so, daß du hier als großer weißer Ritter mir das Wort erklärst, sondern weil mein sechs Finger System (zu 10 reichte es noch nicht) nicht perfekt ist und gelegentliche die falsche Taste erwischt. Gelegentlich scheint es eine gewisse Wiederholung zu geben und ich vertippe mich vier mal bei einem Wort, und du bist eine kleine fette Gurke, die, trotz dessen, daß sie selbst nicht in der Lage ist bei zwei Sätzen sechs Fehler zu vermeiden, hier einen auf Hermann macht. Hast du nichts besseres zu tun? Hat dich deine Mama nicht lieb, daß du mich hier in Diskussionen verwickelst? Wenn du einen haben willst, mit dem du in Zukunft Ärger hast, dann mach weiter so. Mr. Rechtschreibung. Ha.


Delete - Fr 06.05.05 16:09

user profile iconAmiga-Fan hat folgendes geschrieben:
Zitat:
Ein gößeres Problem sind die Komponenten. Es reicht nicht eine Komponente im Adminmodus zu installieren. Das andere Konto wird die neuen Komponenten nicht haben. Man muß wirklich den Kontotyp ändern und im Konto selbst die Installation vornehmen.


Keine Ahnung, wen hier Amiga-Fan zitiert hat, aber sollte es um die Installation von Delphi gehen, ist das Quatsch. Die Komponentenpalette ist eben benutzerspezifisch. So dass du nach dem Setup als Admin, selbiges noch mal als jeweiliger ausführst und nur die Registry Einträge schreibst.


uall@ogc - Fr 06.05.05 16:11

Wie geil du dich aufregst. Willst nicht mal dein Alter angeben?


F34r0fTh3D4rk - Fr 06.05.05 16:13

Zitat:

Welches Gehirn?

:D

wird hier etwas im off topic style mal wieder zu einem Rechtschreib-Thread umfunktioniert oder wie ? :lol:


ach ja
Zitat:

ist genauso wenn jemand "einzigstes" schreibt was es nicht gibt. wenns nen normaler fehler war weil zu schnell geschrieben oder so wärs mir ja egal.

deshalb hättest dir das grad sparen können popov :mrgreen:


uall@ogc - Fr 06.05.05 16:19

"Welches Gehirn" hab ich dazugeschrieben, dass Popov es nicht ganz ertsn nehmen muss mit seinem Rechtschreibfehler "Einstallungen". Ich habe den ganzen Thread gelesen, da hatte er so gut wie keinen Fehler gemacht, nur "Einstallugnen" wurde 6 mal falsch geschrieben.
Ausserdem habe ich mit meinem Beitrag noch meine meinung zum Thema geäußert. Und ich wollte halt schaun wie Povop reagiert. Und was sieht man? Er kapierts nicht und wird direkt persönlich. Genau wie BenBE gegenüber.

Den Text den ich danach geschrieben habe, hab ich so schnell hingeschrieben wie ich es normal mache, wo auch zig fehler vorkommen. Das du das mal wieder quoten musst war mir sowas von klar.

Da kann man wenigstens mal sehen das du dich sofort angegriffen fühlst und nicht sachlich diskutieren kannst. Und ich glaube mit der Meinung bin ich nicht alleine.

schönen Tag noch


F34r0fTh3D4rk - Fr 06.05.05 16:26

ich muss auch nochmal ot werden:
Zitat:
wie Povop reagiert
:lol:

ey das kann man auch spiegeln und des heißt immer noch povop :lol:


uall@ogc - Fr 06.05.05 16:28

@F34r0fTh3D4rk: Sorry, hab mich verschrieben. Ich hoffe er fängt jetzt nicht gleich an über meine Mutter zu lästern oder mich nur noch allou@gc zu nennen.


F34r0fTh3D4rk - Fr 06.05.05 16:29

könnt ich mir aber gut vorstellen 8)


Christian S. - Fr 06.05.05 16:32

Da wir besseres zu tun haben, als diesen Thread immer wieder von irgendwelchem Spam zu säubern, mache ich hier zu. Eine vernünftige Diskussion zum Thema scheint hier nicht jedermanns Ziel zu sein. :roll:

*closed*


Tino - Fr 06.05.05 16:34

Hallo!

Da wir im Team keine Lust haben doppelt und dreifach die Beiträge in diesen Topic zu kontrollieren und vor allem zu moderieren werde ich dieses schließen.

Anscheind ist man ja nicht in der Lage
  1. beim ursprünglichen Thema zu bleiben und
  2. eine Diskussion ohne Beleidigungen durchzuführen.
Selbst der Topicstarter zeigt nicht mal das ihm etwas am ürsprünglichen Thema liegt. Allein deshalb haben wir nicht die Lust hier weiter aufzuräumen.

Gruß
Tino