![]() |
Registry-Probleme unter Vista
Hi,
ich hab ein Programm geschrieben welches ich selbst seit etwa einem Jahr ohne Probleme unter XP nutze. Das Programm biete ich außerdem im Internet an und ich schätze es gibt einige hundert Nutzer. Bei Vista gibt es allerdings Problem-Meldungen. Die Nutzer meinen, daß sie die Optionen nicht speichern können. Dabei ist das wichtig, da man für die Nutzung Zugangsdaten braucht und wenn die nicht gespeichert werden können, dann muß man sie bei jeden Programmstart manuelle eingeben und das ist sehr umständlich. Wie arbeitet das Programm mit der Registry? Ich schriebe und lese die Daten in dem Pfad:
Code:
Eigentlich sollte es bei HKEY_CURRENT_USER keine Probleme geben, denn dieser Bereich der Registry ist Kontospezifisch und unterliegt keinen Beschränkungen, da es Kontoabhängig und somit Einschränkungen wenig Sinn ergeben würden.
HKEY_CURRENT_USER\Software\Programm
Nun kann ich zu dem Problem wenig sagen, da ich selbst kein Vista habe und die Nutzer mir lediglich sagen können, daß die Zugangsdaten nicht gesichert werden. Es wird nichts gespeichert. Also muß Vista das Programm daran hindern die Daten dort abzulegen. Kennt sich hier einer aus und kann mir sagen welches Problem es sein könnte? Wie gesagt, ich selbst hab kein Vista und mehr können mir die Nutzer nicht sagen. Das einzige was vielleicht noch interessant wäre ist, daß ich dafür die TRegIni und nicht die TRegistry nutze. Die TRegIni greift NUR auf den HKEY_CURRENT_USER\Software Pfad, ist also für Optionen besonders geeignet. |
Re: Registry-Probleme unter Vista
Vielleicht wäre es besser, wenn Dein Programm den Fehler selbst auswertet. Ich habe auch kein Vista und daher sonst nicht viel dazu sagen.
|
Re: Registry-Probleme unter Vista
Zitat:
Nimm eine VM und installier dort Vista rein. Dann kannst Du testen, was passiert. |
Re: Registry-Probleme unter Vista
Zitat:
Zitat:
Außerdem gehe ich davon aus, daß dieses Problem nicht unbekannt ist, da ich nichts besonderes mache. Dieses Problem müssen also schon andere gehabt haben. |
Re: Registry-Probleme unter Vista
Zitat:
Zitat:
Stell Dir vor, eine Firma baut ein Auto. Da die Firma nun aber keine Autobahn besitzt, testen sie das Auto nicht auf der Autobahn. Ein Käufer ist nun aber so mutig und fährt damit auf die Autobahn und gibt so richtig Gas. Würdest Du also den Einwand der Firma ("Wir haben aber keine Autobahn zum testen") tolerieren? |
Re: Registry-Probleme unter Vista
Unabhängig von der Frage, ob du unter Vista testen solltest, bleibt dir eigentlich nur eine Möglichkeit: Dein Programm sollte immer und überall gucken, ob seine Aktionen Erfolg hatten, und wenn nicht, auf geeignete Weise den Fehler entweder anzeigen oder, noch besser, mitloggen. Ein Kunde, bei dem das Problem auftritt, kann dir dann seine Logdatei schicken und dann weißt du vielleicht schon, woran es liegt. Blind drauflos zu raten ist eher weniger hilfreich, außer bei bekannten Problemen. HKEY_CURRENT_USER sollte eigentlich nicht zu diesen gehören. Dieser Tipp ist allgemeingültig - wenn man ihn schon im Vorfeld bei der Entwicklung beachtet, hat man hinterher meist leichteres Spiel.
|
Re: Registry-Probleme unter Vista
Leg mal unter NT/2000/XP einen User an und füge diesen nur der Gruppe "Benutzer" zu (als nicht Hauptbenutzer oder Administratorgruppe). Damit kannst du einige Rechteeinschränkungen die auch unter Vista mit aktiven UAC gelten nachstellen. Sinnvoll ist es auch ein erweitertes Manifest (zur Deaktivierung der Registry/Dateisystem-Virtualisierung) zu verwenden. Mit deaktivierter Virtualisierung hast du praktisch fast zu 100% das gleiche verhalten wie unter NT/2000/XP mit entsprechenden Benutzer der Gruppe "Benutzer"
Ansonsten: VM-Ware + Vista-Installation ist nötig um den vielen anderen Problemen auf die dein Programm stoßen kann nachstellen zu können. |
Re: Registry-Probleme unter Vista
Zitat:
Ich lasse die Leute mit dem Vistaprobelem schon seit einige Zeit hängen, aber es melden sich immer neue Leute. Ich komme nicht drumherum es irgendwann zu lösen. Es bringt mir nicht viel hier voll gequatscht zu werden. Entweder gibt es hier Leute die das Problem kennen oder nicht. Ich werde mir garantiert kein Vista kaufen nur um eine Freeware zu testen. Wenn ich in diesem Forum keine Antwort kriege, dann frage ich in einem anderen Forum nach. So einfach ist das. Sorry für die direkten Worte, aber ich hab keine Ahnung wieso sich manchen Leute berufen fühlen Kommentare abzugeben die keinen interessieren. Wenn ich kommerzielle Software entwickle und sie für Vista anbiete, dann können wir nochmal darüber reden. Und glaubt mir, ich bin garantiert einer der wenigen in diesem und anderen Foren die vor der Veröffentlichung eines Programms es auf Herz und Nieren testen. Alle Programme von mir im Netz sind vorher von mir über einen Zeitraum getestet. Ich werde mir also nicht blödes Zeug anhören wie man Software testet. Es gab dieses Programm noch vor Vista und ich hab es nicht für Vista geschrieben, sondern für XP. Allerdings haben inzwischen immer mehr Leute Vista. Also, tut mir bitte einen Gefallen und haltet euch zurück, damit die, die Ahnung haben hier auch antworten. Ich kann mir auch nicht vorstellen, daß das Problem unbekannt ist. |
Re: Registry-Probleme unter Vista
Zitat:
|
Re: Registry-Probleme unter Vista
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Registry-Probleme unter Vista
Und wenn man Funktionen nicht auf ihren Rückgabewert prüft und Leute, die trotz der mäßigen Infos noch versuchen, sich mit dem Problem auseinanderzusetzen, in so einem Ton anfährt, darf man sich nicht wundern, wenn diese Leute irgendwann die Lust verlieren. Dieser Punkt ist bei mir nun erreicht, da das nun der 2. Thread ist, in dem sich Popov dermaßen aufführt.
|
Re: Registry-Probleme unter Vista
Hi Popov,
ich hatte das Problem mit dem User Konto bei Vista auch. Die Lösung brachte eine mitgelieferte Manifest datei. so in Etwa: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="NAME" type="*"/> <description>elevate execution level</description> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> </dependentAssembly> </dependency> </assembly> |
Re: Registry-Probleme unter Vista
Zitat:
Edit roter Kasten: Die Lösung ist nicht dein Ernst, oder? Einfach mal brachial Admin-Rechte anfordern, anstatt der Problemursache nachzugehen? Oo Noch ein Edit: Weil ich gute Laune habe, noch ein Tipp trotz Popovs Aggressivität: Dein Kunde (sollte ein technisch versierter sein) könnte auch einfach mal den Process Explorer laufen lassen und damit dein Programm überwachen. Auf diese Weise kann man auch herausfinden, wo ein Aufruf gegebenenfalls scheitert und eventuell sogar warum. |
Re: Registry-Probleme unter Vista
Liste der Anhänge anzeigen (Anzahl: 2)
Ok, da ich mir kein Vista kaufen will, hab ich ein Beispiel erstellt. Was den betreffenden Punkt angeht, so stimmen beide Programme überein, d.h. diese Beispielprogramm tut die Informationen auf die gleiche Weise speichern wie auch das andere Programm. In diesem Programm hab ich lediglich noch die Abfrage dazu geschrieben, die die Speicherung prüft. Ihr könnt es testen, der Quellcode ist dabei.
|
Re: Registry-Probleme unter Vista
Zitat:
Wie du siehst ergibt das was du schreibst keinen Sinn. Etwas OffTopic: Zitat:
|
Re: Registry-Probleme unter Vista
Also bei mir funktioniert das einwandfrei. Welches Programm ist das denn, das nicht funktioniert?
|
Re: Registry-Probleme unter Vista
Zitat:
Zitat:
Außerdem hat TRegIni keinerlei Probleme mit eingeschränkten oder admin Rechten. Also, mag sein, daß ich hier und da gelegentlich unhöflich bin, aber das nur weil ich von Leuten mit über 1000 Beiträgen immer so unqualifizierte und unsinnige Antworten bekomme. |
Re: Registry-Probleme unter Vista
Zitat:
Zitat:
Zitat:
Ich kenne ein ähnliches Problem, allerdings ging es da um die TRegistry und nicht TRegIni. So funktionierte damals mein mit Delphi 3 erstelltes Programm plötzlich nicht wenn ich es mit Delphi 6 kompiliert habe. Nach eine Suche hab ich festgestellt, daß Delphi 6 bei Registry noch zusätzlich die TRegistry-Eigenschaft Access hatte. Das brauchte man bei Delphi 3 nicht und es funktioniert trotzdem. Bei Delphi 6 mußte ich dann noch ein Access hinzufügen, obwohl das Delphi 3 Programm vorher 2 Jahre ohne Probleme lief. Es sind die Kleinigkeiten auf die ich hinaus will. Stattdessen diskutiert man hier die Frage ob man Fehler loggen soll. |
Re: Registry-Probleme unter Vista
Zitat:
Beispiel:
Delphi-Quellcode:
Damit überprüfst du zwar ob die Funktion fehlgeschlagen ist oder nicht, hift dir aber bei der fehlersuche nicht weiter. Du sollste es so machen:
if Registry.OpenKey(...) then
begin ...; ...; end;
Delphi-Quellcode:
if Registry.OpenKey(...) then
begin ...; ...; end else begin ShowMessage(SysErrorMessage(getLastError)); // oder entsprechend eine Exception werfen. end; Zitat:
Genau genommen müsste man es sogar so machen, um alles abzufangen:
Delphi-Quellcode:
procedure WriteToRegistry;
var reg: TRegistry; begin reg := TRegistry.Create; try try reg.Root := ...; if reg.OpenKey(...) then begin ...; ...; end else raise Exception:Create(SysErrorMessage(GetLastError)); except raise Exception:Create(SysErrorMessage(GetLastError)); end; finally reg.Free; end; end; ...; try WriteToRegistry except on E: Exception do ShowMessage(E.Message); end; ...; Zitat:
|
Re: Registry-Probleme unter Vista
[OT]
Zitat:
|
Re: Registry-Probleme unter Vista
Als Ergänzung zu Luckies Beitrag:
Zitat:
Und noch eine Ergänzung: Ich speichere meine Daten seit Ewigkeiten ohne Probleme in die Registry, wenn nötig (im .NET-Bereich landen die Dinge natürlich eher in einer appconfig und im Linuxbereich ist nix mit Registry). Auch unter Vista. Und wenn es fehlschlägt, weiß ich aufgrund der Fehlerbeschreibung auch schon, warum - oder das Programm trifft schon selbst entsprechende Maßnahmen. Der Fehler liegt also nicht bei Vista. |
Re: Registry-Probleme unter Vista
Zitat:
Ansonsten hat Luckie bereits das gepostet, was ich schreiben wollte. Ich hab mich nur vorher mit deiner Unit aufgehalten ;). |
Re: Registry-Probleme unter Vista
Zitat:
|
Re: Registry-Probleme unter Vista
Hi Popov,
ich habe das Programm eben unter Vista Ultimate einmal getestet. Es gab keine Probleme. Ich kann mir vorstellen das andere User evtl. nicht alle Vista Updates installiert haben, wäre zumindest ne Möglichkeit. ![]() |
Re: Registry-Probleme unter Vista
Zitat:
Wie ich bereits geschrieben habe benutze ich TRegIni. Immer wenn ich nur die Optionen speichern will, benutze ich die TRegIni, da sie sehr einfach ist und ich mir jede menge Zeilen sparen kann. Die TRegIni greift immer nur auf einen Pfad der Registry, also ist der Code immer kurz. Das mit if Registry.OpenKey(...) then kann ich mir sparen, denn TRegIni hat sowas nicht, bzw. macht es intern. Deshalb können da auch keine Fehler vorkommen. Wie ich schon gesagt habe, der entsprechende Code ist 100% Error free. Auch eine Error-Routine ist nicht nötig. All das brauche ich nicht, denn es gibt keine Fehlermeldungen die ich abfangen könnte. Ein typischer Code siehst so aus:
Delphi-Quellcode:
Da gibt es nichts um es falsch zu machen. Und der try finally ist nur aus Höflichkeit da.
with TRegIniFile.Create('Programmname') do
try S := ReadString(Section, Ident, Default) finally Free end; Wie du siehst geht es hier nicht um Fehler. Du kannst dir den Quellcode angucken und mir die Fehler zeigen. Zitat:
|
Re: Registry-Probleme unter Vista
Ach und was passiert, wenn das
Delphi-Quellcode:
zum Beispiel fehlschlägt? Und jetzt sag mir nicht, das kann nicht fehlschlagen, denn das tut es ja offenbar.
procedure WriteIniString(Section, Ident, Value: String);
begin with TRegIniFile.Create(RegFile) do try WriteString(Section, Ident, Value) finally Free end; end; Desweiteren: Zitat:
|
Re: Registry-Probleme unter Vista
Achso, noch als kleiner Hinweis von wegen: "Ich will nicht testen, geb kein Geld aus blubb..."
Es gibt auch von Vista 180 Tage Trial Versionen und Virtual PC 2007 ist soweit ich mich erinnere kostenlos erhältlich. Ich weiß nicht ob es lizenzrechtlich einwandfrei wäre die Trial Version für Softwaretesting zu verwenden, aber denke mal es wäre zumindest mal eine Lektüre der EULA wert. Dafür benötigst Du nur eine Vista Installations DVD. Wenn Du keine DVD hast, gibts bei MS auch fertige Virtual PC Images zum Download. Die laufen allerdings nur 30 Tage: ![]() |
Re: Registry-Probleme unter Vista
Zitat:
Zitat:
Es geht hier also weniger drum ob mein Code einen Fehler hat als der Frage ob Windows unter bestimmten Umständen das Speichern verweigert. Ich weiß, daß Windows Vista ja diesen Pseudoadmin nutz mit dem man auch als Admin sicher arbeiten kann. Meine Frage zielte also eher drauf aus ob Vista hier versucht die Registry zu schützen. Zitat:
Delphi-Quellcode:
Es ist nur eine abgeleitete Klasse die erlaubt genauso einfach mit der Registry wie mit der Ini zu arbeiten. Wenn man auf die ganze Registry zugreifen will, dann kommt man nicht um die TRegistry und OpenKey usw. herum. Wenn man nur Einstellungen speichern will, dann reicht TRegIniFile.
TRegIniFile = class(TRegistry)
Um ehrlich zu sein müßtest du ein großer Fan der Klasse sein, da ich mich erinnern kann wie sehr dir missfällt wenn ein Programm in der Registry speichert. TRegIniFile speichert nur in einem einzigen Pfad. Das Reinigen der Registry ist also ganz leicht ;) |
Re: Registry-Probleme unter Vista
Und derjenige, der noch nie selbst Fehlerpfade ignoriert hat, der werfe den ersten Stein.
Ich erwarte heute keine Tiefflieger! Also hier mein Senf: 1. @Popov. Dein Programm funktioniert bei mir! Es muss also woanders happern. Wenn dein Programm Freeware ist, dann solltest du uns zumindest den Programm/Source-Link geben. Der eine oder andere wird es sicher unter Vista testen. Ein Text "geht nicht unter Vista" genügt leider nicht. Wenn du es alleine schaffen willst, dann ist Logging in eine Datei eine sehr gute Alternative. Du könntest z.B. für die harten Fälle Eurekalog kaufen. Das kostet nicht die Welt (wie manch andere hochgelobte Software hier) und kann dir sogar ne Email schicken, wenn bei jemandem etwas schiefgegangen ist (wenn derjenige es will). Für einfaches Logging kannst du aber auch entweder etwas selbst machen, oder du verwendest z.B. JwsclLogging.pas von ![]() 2. @all: Wenn Popop sich kein Vista kaufen will, dann muss das doch als Antwort genügen. Aber einfach festzulegen, dass man es haben MUSS, wenn man ein Programm nur leicht dafür anpassen will, ist für mich unverständlich. Unverständlich daher, weil es bereits viele solcher Fragen hier gab und keiner sich darüber aufgeregt hat. Das was man ihm vorwerfen kann ist schon in Punkt 1 abgehakt. 3. Ich erwarte keine steinige Luft. Rückggabewerte werden eben gerne ignoriert und Eingabewerte werden überhaupt nicht oder nicht vollständig überprüft. Wäre das nicht so, könnte man heute nicht mehr in Softwaresysteme einbrechen (Buffer overflow). 4. Zitat:
Normal ist es doch andersherum, oder? Der Benutzer einer Unit/Bibliothek muss die Fehlerfälle überprüfen, die in einer Lib-Funktion auftreten. Es gibt nur selten Fehler, die abgefangen werden können und damit es erlauben, die Funktion fortsetzen zu lassen. Eine Lib-Funktion kann nicht für meine Idee (was ich damit vorhabe) die Fehler abfangen. Exceptions sind extra so entworfen worden, damit sie an den nächsten Aufrufer zurückgegeben werden können. Meine ganze Bibliothek JWSCL steht (und fällt) mit diesem Prinzip. Nur die allerwenigsten Funktionen haben wirklich einen Rückggabewert. Ich gehe sogar noch weiter und werfe eine bestimmte Exception immer dann, wenn eine Windows Funktion fehlschlägt. Da ich nicht für alle GetLastError Meldungen eine Exception designen kann, gebe ich eben noch die Fehlernummer an. Borland/CG macht es mit EOleSysError genauso (wobei ich das misslungen finde, da ich keine positiven Werte abfangen kann: S_FALSE *argh*). 5.Stichwort: Fehlerbehandlung und beschreibung. Ich kenne keine Anwendung, die das vollständig durchzieht. Würde man das machen, und es trete ein Fehler auf, dann müsste man nicht nur in verständlichen Worten den Fehler beschreiben, sondern auch noch eine Lösung dem Benutzer präsentieren. Schaut euch mal die unter Windows möglichen Fehlercodes an. Ich habe sie hier alle aufgelistet: ![]() Ich bezweifle schon, dass man ansatzweise dieses Problem lösen könnte. Man sollte nur die bekannten Exceptions/Fehler abfangen und behandeln. Den Rest kann man abfließen und damit das Programm abstürzen lassen. Hu? Absturz? Schlimme Sache!? Schlimmer wäre es, wenn das Programm nach einem abgefangenen aber unbekannten Fehler einfach weiterläuft und mir meine Daten durcheinander bringt. Da ich alle paar Minuten speichere, ist das Ungespeicherte verschmerzbar. BlueScreens unter Windows funktionieren nach diesem Prinzip. Würde ein Amok-Treiber weiterlaufen könnte das höchstwahrscheinlich mehr Schaden anrichten als ein paar verlorene Daten. Es gibt natürlich die rühmliche Ausnahme, wo Menschenleben auf dem Spiel steht (Raumschiff, Lebenserhaltung, ...). Aber die wird nicht mit Delphi programmiert (Stichwort: ADA) 6. "Exception swallowing". Ich muss zugeben, dass hab ich bis jetzt noch nie gehört. Aber schon der Laut hört sich nicht gut an :D Wäre google das Internet, dann müsste ich nun sagen, dass die Wortkombination nicht sehr bekannt ist. Trotzdem habe ich eine nette Abhandlung des Themas gefunden. ![]() Leider ist es nicht Delphi (mir egal), aber man kann trotzdem etwas lernen. Wer seine englisch Kenntnisse noch ausweiten möchte, der sollte dann das im Blog anfangs erwähnte PDF lesen. 7.
Code:
Ich mag persönlich solchen Code überhaupt nicht. Man muss schon sehr schreibwütig sein, um soetwas auszuschreiben. Und wenn dann noch
if Registry.OpenKey(...) then
begin ...; ...; end else ... der eXtended Syntax $X aktiv ist, dann meckert nichtmal der Compiler über ignorierte Rückgabewerte. Deshalb nehme ich gerne Exceptions, da hier im Fehlerfall der Programmcode mir auf den Zehen landet. Es gibt einen ähnlichen Fall in TRegistry, der mich sehr verwundert hat, als ich mir den TRegistry Code angeschaut habe:
Code:
Der Code ist nach dem CreateKey-Design einfach falsch. Die Delphi-Hilfe sagt dazu folgendes:
if Registry.CreateKey(...) then
begin ...; ...; end else ... CreateKey gibt true zurück, wenn die Erzeugung erfolgreich ist. Im Fehlerfall wird eine Exception ausgelöst. Der Versuch, einen bereits vorhandenen Schlüssel erneut zu erzeugen, hat keine Auswirkung. D.h. wenn ein Fehler auftaucht, dann ist der Rückgabewert zwar FALSE, jedoch wird der Else-Zweig garnicht erreicht, da schon eine Exception erzeugt wird. Ich frage mich wirklich, wer auf diese Schnapssidee gekommen ist, eine Funktion den Fehlerwert per Rückgabewert UND Exception zu übermitteln. Da denkt man einmal an alles, nur nicht die Hilfe zu lesen.
Code:
Im Gegensatz dazu wirft TRegistry.OpenKey keine Exception.
try
Registry.CreateKey(...) except on E : ERegistryException do .... end; 8. Ich hatte mal eine Frage in einer Newsgroup von einem großen Konzern gestellt. Diese Frage war jedoch bereits auf ähnliche Art und Weise in einer anderen Newsgroup derselben Firma gestellt worden. Ich wurde freundlich darauf hingewiesen. Jemand hatte diese Frage bereits gestellt, und genau dieser Jemand hatte mir auch geantwortet. Die Antwort bestand aus drei Worten (übersetzt): "merkwürdige Frage! Nein?" Meine Antwort darauf, dass er doch dieselbe Frage, aber woanders gestellt hätte und was denn daran so merkwürdig wäre, hat er dann so quittiert : "Das ist keine gewöhnliche Frage...". Verstanden? Nein? Ich auch nicht. Was ich damit meine ist, dass man sich im Internet nichts zu Herzen gehen lassen sollte. Nicht aufregen, und die Zeit stattdessen für bessere Dinge verwenden. (Z.b. Software verbessern oder ![]() |
Re: Registry-Probleme unter Vista
Zitat:
Zitat:
Zitat:
Schreibst du u.U. mit einem Prozess in die Registry und ein anderes liest es aus? |
Re: Registry-Probleme unter Vista
Zitat:
|
Re: Registry-Probleme unter Vista
Zitat:
Zitat:
Zitat:
Zitat:
Wie ich bereits gemerkt habe taucht das Problem anscheinend nicht überall auf. ICh werde die Leute mit dem Problem nochmal anschreiben. Mal sehen ob sie mir mehr sagen können. |
Re: Registry-Probleme unter Vista
Zitat:
|
Re: Registry-Probleme unter Vista
Zitat:
Allerdings kannst du per PN den Link zu den alten kriegen. |
Re: Registry-Probleme unter Vista
@Popov:
Also das schlechteste an deiner Unit ist, dass du TRegIniFile verwendest. Diese Klasse ignoriert Fehler schlichtweg.
Delphi-Quellcode:
Das steht in vielen Fällen im Code von TRegIniFile. Ich würde dir empfehlen, deine Unit umzuschreiben, damit sie TRegistry verwendet. Dann tobe dich noch mit den Fehlerfällen aus (Exceptions) und es sollte funktionieren.
Key := CreateKey(...);
if Key <> 0 then begin ... end; Bis dahin kannst du die Vistaleute ausprobieren lassen, den Kompatibilitätsmodus einzuschalten. Und wenn du dann dich immernoch ausgetobt hast, dann kannst du ja mal die JWSCL ( ![]() |
Re: Registry-Probleme unter Vista
Liste der Anhänge anzeigen (Anzahl: 1)
Hm ... der Anhang ist recht hübsch. TRegIniFile scheint sich auch ganz gerne Mal eigenmächtig andere Keys herzunehmen zum Schreiben, wenn es meint es besser zu wissen als Du. Evtl. werden die Daten also gesichert, aber nicht in einem Key in dem Du es erwartest. Lass deinen speziellen User der das Problem auch mal ein Registry Trace anfertigen mit Process Monitor.
|
Re: Registry-Probleme unter Vista
Zitat:
Zitat:
Zitat:
Zitat:
Allerdings, wenn ich mir so den Rest deiner Beiträge in diesem Thread angucke...Ich glaube, ich steige aus, du willst einfach keine Vorschläge von uns annehmen. Viel Glück noch bei der Fehlersuche. |
Re: Registry-Probleme unter Vista
Zitat:
![]() |
Re: Registry-Probleme unter Vista
Zitat:
Natürlich besteht beim Programmieren die Möglichkeit, daß es Fehler gibt, aber auf der anderen Seite gibt es auch die Möglichkeit fehlerfrei zu programmieren. Der Code in meiner Unit entfällt keine Fehler. Eigentlich könnte ich auch die try finally entfernen. Was soll da passieren? Ok, einer könnte bein String eine Integer eingeben, aber das merkt man schon beim programmieren. Also auch keine richtige Fehlerquelle. Hast du dir den Code angeguckt? In jeder Prozedur wird das Objekt erstellt und freigegeben. Es kann also keine Überschneidungen geben. Ich benutze einen Pfad der garantiert da ist. Wenn nicht, dann ist Windows im Eimer. Da kann es also keine Fehler geben. Erst wenn man die Registry manipuliert könne es kleine Probleme geben. "Software" könnte nicht die nötigen Rechte. Aber dann würden eigentlich kein Programm mehr funktionieren. Der Programmpfad zu wenige Rechte? Möglich, aber dann bringt mir OpenKey auch keine bessere Info. Ich schätze, daß du einfach die TRegIniFile nicht kennst Zitat:
Zitat:
Zitat:
Es ist eigentlich schlimm, denn die Kommentare zeigen, daß man etwas sagt was üblich ist, aber sich nicht mit dem Problem beschäftigt. |
Re: Registry-Probleme unter Vista
Tja, was soll man dazu noch sagen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz