Popov 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.
Popov 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 ...
Popov 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 ...
Popov 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.
Popov 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?
Popov 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
Popov 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.
Popov 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

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
Popov 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
Popov hat folgendes geschrieben: |
Dafür gibt es entweder die Registry, wenn es sich um INI Informationen handelt, oder das Anwendungsdaten-Verzeichnis. |
Wow ... Die Registry!!!

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
Popov hat folgendes geschrieben: |
In diesem Sinne - macht es besser als die Anderen  |
... und nutzt das Programme-Verzeichnis
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).
Heiko hat folgendes geschrieben: |
Popov 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!
Heiko 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
Heiko hat folgendes geschrieben: |
Popov 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.
Heiko 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

*verstohlenzu
Tinound
TUFKAPLguck*
hansa hat folgendes geschrieben: |
@Popov : ändere bitte Deinen Titel, siehe Richtlinien.  |
Popov 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 ???

Aber da muss ich zustimmen. Ein Titel der Art "Falsche Nutzung des Programmverzeichnisses" würde wesentlich besser passen

Soviel mal zu besseren Vorschlägen ...
hansa hat folgendes geschrieben: |
Das da paßt mir genau richtig in den Kram. 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.
hansa 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 und hatte nicht verstanden, warum der Rechner nicht neu gestartet werden muß. |

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

.
wulfskin hat folgendes geschrieben: |
Hallo Popov,
danke für diesen Aufschrei! |
... wir wären auch ohne ihn bereischert worden
wulfskin 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.
Neo 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).
Neo 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).
fvolk 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 ...
Phobeus 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.
Popov 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 ...
Popov 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 ...
Popov 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ß. |
@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.
Popov 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!
Popov 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 ^^
Popov 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.
Popov hat folgendes geschrieben: |
Microsoft will keinen Ärger mit nicht funktionierenden Programmen die für Windows 9x programmiert wurden. |

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 ...
Popov 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
Popov 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.
hansa hat folgendes geschrieben: |
Popov 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. 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
hansa 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 ...
hansa 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.
hansa 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.
hansa 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. 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

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
Popov 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
Und das war Tage nach der großen Sasser-Welle
Popov 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!
Popov 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.
Popov 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.
Popov 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 ...
MathiasSimmack 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.
MathiasSimmack 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.
hansa 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
Popov 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
Popov 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.
Popov 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

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 ^^
Popov 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).
Popov 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!
Popov 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!
MathiasSimmack 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
MathiasSimmack hat folgendes geschrieben: |
Die Rechteprüfung für Delphi wurde hier im Forum schon mal 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
Motzi: Delphi-Tag korrigiert.
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.