![]() |
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:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 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