|
Antwort |
Popov
(Gast)
n/a Beiträge |
#71
Zitat von Daniel:
Ich habe mir mal eben das Demo-Programm abgesehen und dabei einen Blick auf die Klasse "TRegIniFile" geworfen. Ich halte diese Klasse für problematisch, weil sie eben nicht dediziert prüft, wo was falsch gelaufen ist und dies an die Anwendung zurückliefert.
Für die Fehlersuche ist eine direkte Verwendung der Klasse TRegistry geeigneter, da man hier Operation für Operation auf Ihren Erfolg hin prüfen kann: TRegistry.Create TRegistry.RootKey = _XY_ KeyExists CreateKey OpenKey Read_XYZ_ Write_XYZ_ CloseKey Danach ist unmittelbar klar, wo es beim Anwender knallt und oftmals ergibt sich dann aus der Situation auch direkt die Ursache für das Fehlverhalten. Du, wie zum Teil die anderen, sehen die TRegIniFile im ganzen Zusammenhang der Registry und dann sagt ihr euch, daß sie zu wenig Möglichkeiten liefert. Das ist nicht richtig, denn die TRegIniFile arbeitet nur in dem Bereich HKCU/Software. Würde ich mit TRegIniFile versuchen auf die ganze Registry zugreifen zu wollen, du hättest dann Recht, denn dann könnte man über zu wenig Möglichkeiten sprechen. Es ist ja nicht so als ob ich nur die TRegIniFile nutze. Im Schnitt nutze ich die TRegistry wohl öfters wenn ich allgemein mit der Registry arbeite, aber hier geht es nur um den einen Pfad. Und das besondere an dem Pfad ist, daß man hier wiederum einiges an möglichen Fehlern ausschließen kann. Und es ist das was ich versuche klar zu machen. Die HKCU/Software ist in der Regel nicht schreibgeschützt, bzw. in Rechten eingeschränkt. Man hat dort die Möglichkeiten die Rechte einzuschränken, weil es ein Teil der Registry ist und man für die HKCU keine Sonderregeln erst5ellen wollte, aber die HKCU/Software hat keinerlei Bereiche mit geringeren Rechten. Ist ja auch unnötig, da die HKCU abhängig vom Konto ist. Jedes Konto hat seine eigene HKCU. Wechsele ich das Konto, habe ich eine andere HKCU. CU bedeutet Current User. Das sage ich so deutlich, denn das muß man sich erst bewust machen. Die HKCU/Software ist also nicht in Rechten eingeschränkt wie andere Teile der Registry. Bei den anderen Teilen der Registry kann einem doch tatsächlich passieren, daß man zwar lesen kann, aber nicht schreiben, oder, daß man garnichts darf. Bei der HKCU/Software kann es das nur theoretisch passieren. Somit entfällt die Notwendigkeit Fehler abzufangen, denn es kann keine Fehler geben. Fehler kann es nur geben wenn die Festplatte voll ist. Aber dann ist es wohl das kleinste Problem und völlig uninteressant ob die Einstellungen nicht gespeichert werden konnten. Die zweite Fehlermöglichkeit ist auch nur eher theoretisch. Theoretisch kann man den Pfad in Rechten einschränken. Aber wer tut das? Wozu? Da jedes Konto eine eigene HKCU hat, kann kein anderes Konto Zugriff auf den Teil der Registry erlangen. Rechteverwaltung ist also unnötig. Ich kann ALLEN die Rechte nehmen, selbst den Admins, und die werden nie Probleme haben, denn ein Admin wird nie deswegen Problem haben, denn er er hat überhaupt keine Möglichkeit auf diese HKCU zuzugreifen. Die HKCU/Software hat einen gewissen Sonderstatus gegenüber den anderen Teilen der registry, denn dieser Bereich ist ein von Microsoft garantierter Bereich. Auf diesen Bereich kann man immer zugreifen und wird nie Probleme bekommen. Die Probleme sind nur theoretisch. Wozu soll ich also irgendwo auf Fehlersuche gehen wo es überhaupt keine Fehler geben kann? Ich bin ein wenig gespalten über die Herren die hier meinen mich aufklären zu müssen, denn anscheinend haben die keine Ahnung über diesen Teil der Registry. Eigentlich müßte ich erschrocken sein. Wenn die keine Ahnung von der HKCU/Software haben, dann kann man annehmen, daß sie ihre Einstellungen an jeden Teil der Registry schreiben. Und wenn sie sie in HKCU/Software schreiben, dann nur zufällig, weil sie vielleicht gehört haben, daß auch die anderen es so machen. Dabei kann es bei der HKCU/Software unter üblichen Umständen keine Fehler geben. Nun betrachten wir mit diesem Wissen die TRegIniFile noch einmal. Die TRegIniFile hat keine Fehlerabfragen, weil es nicht geplannt ist, daß es Fehler gibt. Noch ein malfür alle die es nicht verstanden haben: im Gegensatz zu anderen bereichen der Registry hat man auf HKCU/Software immer Zugriff. Dieser Bereich soll die INIs ersetzten, er sollte den Windowsordenr entlasten, also hat Microsoft dem Konto volle und uneingeschränkte Rechte über diesen Teil der Registry gegeben. Wieso wissen es die Leute, die Programmierer, die hier meckern das nicht? Ich möchte mal einen sehen der unter normalen Umständen, d.h. ohne die Registry manipuliert zu haben, in diesem Bereich Probleme hatten. Gibt es nicht. Also Daniel, wie du siehst stellt sich die Frage nach mehr Möglichkeiten der TRegistry garnicht. Wer in HKCU/Software mit TRegisry arbeitet und Fehler abfrag, der hat keine Ahnung was er da macht. Und da ich bei TRegIniFile mit Create und Free alles korrekt einleite und freigeben, besteht auch hier kein Grund zu Sorge. Letztendlich kann man TRegIniFile nur die wenig Möglichkeiten vorwerfen, d.h. sie kann letztendlich nur Strings speichern und lesen, aber das ist ein anderes Thema und wenn ich was anderes brauch, dann werde ich es schon nehmen. Ich hoffe jetzt einige aufgeklärt zu haben. Bevor man etwas kritisiert, sollte man es kennen. Das ist wie mit den Auto und dem Fallschirm. Im Auto brauche ich nun mal keinen Fallschirm, auch wenn theoretisch die Möglichkeit besteht, daß ich mal über eine Schlucht stürze. Das gleiche ist auch mit TRegIniFile. Es besteht die theoretische Möglichkeit, daß die Festplatte voll ist und dann kriege ich keine Fehlermeldung. Aber genau sowenig wie ich bei Autofahren einen Fallschirm brauche, brauche ich bei TRegIniFile eine Fehlermeldung. Ich hoffe, daß es jetzt keine Unklarheiten mehr gibt. Ansonsten bin ich für Rückfragen gerne bereit. Und für alle Profis die sich jetzt in der Ehere gekränkt fühlen: man kann nicht alles wissen. Es gibt auch Bereiche wo ich keine Ahnung habe. |
Zitat |
Popov
(Gast)
n/a Beiträge |
#72
Zitat von Luckie:
Genau das versuchen wir Popov seit dem ersten Posting klar zu machen. Aber er weigert sich ja beharrlich eine Alternative in betracht zu ziehen.
Zitat:
Ich meine nicht das Feedback von deinen Kunden, sondern ein Feedback von Windows in Form einer Fehlermeldung! Aber so lange du auf dieser komischen TregistryIni-Klasse beharrst, wirst du das nie bekommen.
Zitat:
Selbst Borland ist nicht unfehlbar. Menschen machen Fehler, das liegt in ihrer Natur.
Zitat:
Doch, denn dann würde GetLastError Fehlercode 5 ("Zugriff verweigert") zurückgeben und du wüsstest, warum es nicht funktioniert.
|
Zitat |
Popov
(Gast)
n/a Beiträge |
#73
Zitat von Daniel:
nur sind die Möglichkeiten, auf diesen Vorgang einzuwirken, viel zu gering. Das Beginnt bei der expliziten Wahl der Zugriffsrechte
Zitat:
und gipfelt eben - wie in diesem Fall - an der Fehlerbehandlung, die in einem "geht" bzw. "geht nicht" mündet.
Die Punkt wieso ich hier trotzdem gefragt habe, war nicht allgemeiner Natur, weil ich Probleme unter XP habe, sondern die Frage war ob Vista den Bereich HKCU/Software inzwischen anders handhabt als XP. Erst bei ja, unter Vista hat man da nicht volle Rechte, könnte man über Alternativen und Fehlerabfangen sprechen. Unter XP besteht keine Notwendigkeit für eine Fehlerroutine. Und noch was (ist nicht an dich gerichtet) - ich behaupte allen ins Gesicht, daß keiner in seinem Programm solche Abfragen IMMER und bei JEDEM Zugriff einbaut. Das wäre gelogen. Ich kenne die Leute und weiß wie faul Programmier sind. Wenn überhaupt, dann wird das nur in Ausnahmen oder "besseren" Programmen eingebaut. Bei mir dagegen ist selbst das kleinste und unwichtigste Programm 100% XP Kompatibel. |
Zitat |
Popov
(Gast)
n/a Beiträge |
#74
Zitat von wido:
Zitat von Daniel:
An der tatsächlich verrichteten Arbeit ist nichts auszusetzen, nur sind die Möglichkeiten, auf diesen Vorgang einzuwirken, viel zu gering.
|
Zitat |
Registriert seit: 23. Jan 2008 3.686 Beiträge Delphi 2007 Enterprise |
#75
Ich habe glaube ich bislang niemals zuvor jemanden hier gesehen, der im ersten Posting eine Frage stellt, nur um 5 Seiten lang danach sämtlichen Antwortern vor das Schienbein zu treten, was ihnen denn einfiele sinnvolle Vorschläge zu machen, dein Programm wäre doch perfekt!
Und da dein Programm, wie du selbst professionell nachgewiesen hast, die höchste Gütestufe die ein sterblicher je erreichen könnte hat, gibt es auch kein Problem zu lösen. Zumindest behauptest du das hier. Dann leb' eben mit deinem perfekten Programm, aber tu nicht so, als würdest du von so kleinen Kreaturen wie uns Hilfe benötigen. Mir ist schon ganz schwindlig vom ganzen Kopfschütteln, echt unglaublich.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
|
Zitat |
Registriert seit: 29. Mai 2002 37.621 Beiträge Delphi 2006 Professional |
#76
Zitat von Popov:
Die TRegIniFile hat keine Fehlerabfragen, weil es nicht geplannt ist, daß es Fehler gibt.
Na dann ist doch alles in Butter und der Heilige Geist in Patschen ist daran Schuld, dass bei manchen Benutzern anscheinend nichts gespeichert wird.
Zitat:
Zitat:
Ich meine nicht das Feedback von deinen Kunden, sondern ein Feedback von Windows in Form einer Fehlermeldung! Aber so lange du auf dieser komischen TregistryIni-Klasse beharrst, wirst du das nie bekommen.
Zitat:
Wie gesagt, ich nutze meine Unit (die natürlich die TRegIniFile) seit sechs Jahren in eigentlich allen meinen Programmen.
Zitat:
Ich hab bei sechs Jahen und 500.000 Zugriffen noch keinen einziges Mal ein Problem gehabt (zumindest bei Win 98 und XP). Ich schätze das sagt alles. Wir brauchen uns nach 500.000 fehlerfreien Zugriffen wohl keine Gedanken über Bugs machen, oder?
Zitat:
Zitat:
Doch, denn dann würde GetLastError Fehlercode 5 ("Zugriff verweigert") zurückgeben und du wüsstest, warum es nicht funktioniert.
Zitat von Popov:
Erst bei ja, unter Vista hat man da nicht volle Rechte, könnte man über Alternativen und Fehlerabfangen sprechen. Unter XP besteht keine Notwendigkeit für eine Fehlerroutine.
Zitat:
Und noch was (ist nicht an dich gerichtet) - ich behaupte allen ins Gesicht, daß keiner in seinem Programm solche Abfragen IMMER und bei JEDEM Zugriff einbaut. Das wäre gelogen. Ich kenne die Leute und weiß wie faul Programmier sind. Wenn überhaupt, dann wird das nur in Ausnahmen oder "besseren" Programmen eingebaut. Bei mir dagegen ist selbst das kleinste und unwichtigste Programm 100% XP Kompatibel.
Michael
Ein Teil meines Codes würde euch verunsichern. |
Zitat |
Popov
(Gast)
n/a Beiträge |
#77
Zitat von Daniel:
Hut ab. Das Szenario spielt sich so ab wie von Dir beschrieben. Danke für die Demonstration.
Das ist böse - gerade beim Löschen wird's spaßig. Okay. Die Klasse gehört auf den Müll.
Zitat von wido:
Starten, Registry Editor aufmachen, nach HKCU\Software gehen und die Rechte für den Zugriff auf TestEntry entfernen (Rechtsklick, Berechtigungen, Erweitert, "Vererbbare Berechtigungen einschließen" deaktivieren, Entfernen und den Dialog mit OK bestätigen). Dann Return in der Testapp und den View im Registry Editor aktualisieren. Der Section Name "Subkey" sollte jetzt als Unterschlüssel des Rootkeys HKCU erstellt worden sein inkl. der erwarteten Werte. Wenn Du dort die Rechte auch entfernst wie zuvor, kommt die Exception, die eigentlich vorher schon hätte kommen müssen: "Failed to create key subkey.".
Wie ich schon gesagt habe, um die TRegIniFile zu begreifen muß man erst um den besonderen Status der HKCU wissen. Wenn man sie für ein beliebiges Teil der Registry hält, dann hat man keine Ahnung. Das Beispiel von wido ist nur theoretisch möglich. In der Praxis sind aber die Rechte nicht beschränkt. Kleine Infostunde: man stelle sich vor, man arbeitet mit einem eingeschränktem Konto. Dann will man etwas installieren und man macht das in seinem eing. Konto über RunAs und das Adminkonto. Gesagt, getann, das Programm wurde installiert und auch gleich die SN eingegeben. Die wurde in in der HKCU abgelegt. Frage, ist das Programm auchg für das eigene Konto freigeschaltet? Nein, denn es wurde in der HKCU des Adminkontos angelegt. Eine All Users UKCU gibt es auch nicht. Jeder User hat seine eigene HKCU und die hat IMMER voller Rechte, es seiden es kommt Wilo und schrenkt sie über den RegEditor ein Also wilo, ein netter Trick und du hast doch tatsächlich einige beeindruckt, sogar den Forenadmin. Aber jetzt bin ich da. Zeig mir mal den Trick nochmal, allerdings ohne künstliche Manipulation der Registry. Dafür darfst du dich aller meine Konten bedienen. Es sind 4 Konten, zwei Adminkonten und zwei mit eing. Rechten. Du darfst alle Tricks nutzen, bis auf die Festplatte voll machen und die Rechte der HKCU künstlich beschränken, was in der Praxis nicht vorkommt. Ich warte. |
Zitat |
Popov
(Gast)
n/a Beiträge |
#78
Zitat von Medium:
Ich habe glaube ich bislang niemals zuvor jemanden hier gesehen, der im ersten Posting eine Frage stellt, nur um 5 Seiten lang danach sämtlichen Antwortern vor das Schienbein zu treten,
|
Zitat |
Popov
(Gast)
n/a Beiträge |
#79
Zitat von Luckie:
Zitat von Popov:
Die TRegIniFile hat keine Fehlerabfragen, weil es nicht geplannt ist, daß es Fehler gibt.
Na dann ist doh alles in Butter und der heilige geist in Patschen ist daran Schuld, dass bei manchen Benutern anscheinend nichts gespeichert wird.
Zitat:
In der Zwischenzeit sind drei Betriebssysteme von Microsoft erscheinen und es hat eine Entwicklung statt gefunden.
Zitat:
Du willst es nicht verstehen oder? Vista ist nicht XP und schon gar nicht 98!
Zitat:
Herr im Himmel hilf mir. Fakt ist, dass anscheinend nichts gespeichert wird. Du, ich und wir alle wollen jetzt herausfinden, warum nichts gespeichert wird. Richtig?
Also, so wie du es ausgedrückt hast ist es nicht. Es gibt keine Speicherproblem.
Zitat:
So. Nur hilft es uns nicht, wenn du uns andauernt die ach so tollen Vorzüge von TRegIniFile predigst, da die Klassem, wie du selbst sagt, alle Fehler einfach verschluckt. Wir drücken bei unserem Patienten also über all rum und der sagt uns nicht, wo es ihm weh tut. Ergo können wir ihm auch nicht helfen.
Zitat:
Keinen Kommentar der Zeit für Kommentar.
|
Zitat |
Popov
(Gast)
n/a Beiträge |
#80
Ok, mir ist gerade beim lesen des letzten Postings etwas aufgefallen. Vielleicht kommen die unterschiedlichen Sichtweise wegen der unterschiedlichen Art der Programmierung. Ich hab glaube ich bereits auf der zweiten Seite etwas über mich geschrieben was wichtig ist, aber anscheinend nicht richtig herausgestellt:
Ich mag keine Fehlermeldungen. Zumindest keine System-Fehlermeldungen. Ich hab da eine gewisse Abneigung dagegen. Andere arbeiten mit ihnen, ich versuche sie zu vermeiden. Wenn ich programmiere, dann versuche ich alle möglichen Problem schon vorher abzufangen. Genanntes Beispiel war - bevor ich eine Text Datei in die Memo lade, prüfe ich ob es die Datei überhaupt gibt. Das wäre eine von den möglichen Abfragen die ich einbaue bevor ich den Text lade und das Risiko eingehe, daß die Datei nicht da ist. Ich könnte mir das sparen und den Ladevorhang in try except einbauen und dann die Fehlermeldung auswerten. Worauf ich hinaus will. Wie man ein Fehler abfängt ist mir schon klar, aber ich möchte den Grund für den Fehler wissen. Mir geht es nicht wie ich einen Fehler hier abfrage, sondern was könnte der Grund sein wieso einige die Probleme haben. |
Zitat |
Ansicht |
Linear-Darstellung |
Zur Hybrid-Darstellung wechseln |
Zur Baum-Darstellung wechseln |
ForumregelnEs ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus. Trackbacks are an
Pingbacks are an
Refbacks are aus
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
LinkBack URL |
About LinkBacks |