![]() |
Vista 2. Partition Registry-Zugriff schägt fehl
Moinsen!
Das Problem ist folgendes: Ein und das selbe Programm (ohne Adminrechte ausgeführt) kann, wenn es auf der 2. Partition (D:, NTFS, alle Rechte vorhanden) liegt nicht in HKCU schreiben. Liegt es auf der 1. Partition (C:, System-Partition, NTFS) geht alles glatt. Zum Testen nehme ich folgenden Code:
Delphi-Quellcode:
Liegt das Programm auf C: geht alles glatt. Liegt es auf D: liefert RaiseLastOSError
procedure TForm1.Button1Click(Sender: TObject);
var Reg : TRegistry; begin Reg := TRegistry.Create(KEY_ALL_ACCESS); Reg.RootKey := HKEY_CURRENT_USER; if Reg.OpenKey('Software\SPP', true) then reg.WriteString('Test', 'Ich war hier') else RaiseLastOSError; reg.Free; end;
Code:
Habt ihr eine Idee?
Ein Aufruf einer Betriebssystemfunktion ist fehlgeschlagen.
Btw: Das ist das Grund für ![]() //edit: Interessant ist auch, das der Anlagen-Mananger eine Sicherheitswarnung für alle Programme (*.exe) bringt, wenn sie auf der 2.Partition liegen. Ich weiß zwar, wie man das abschaltet, aber das muss doch einen Grund haben. Normalerweise passiert das doch nur bei Netzlaufwerken. |
Re: Vista 2. Partition Registry-Zugriff schägt fehl
Ich hab damit keine Probleme. Ich kann das Programm von überall starten und der Schlüssel wird bei aktivierter UAC trotzdem korrekt erstellt.
|
Re: Vista 2. Partition Registry-Zugriff schägt fehl
Danke André fürs Ausprobieren.
Normalerweise funktioniert das auch. Bei mir ging es bis zu letzten Vista-Neuinstallation auch ohne Probleme. Nur jetzt nicht mehr. Scheinbar vertraut Windows der Partition nicht mehr. |
Re: Vista 2. Partition Registry-Zugriff schägt fehl
Hast du an den Rechten von HKEY_CURRENT_USER etwas verändert?
|
Re: Vista 2. Partition Registry-Zugriff schägt fehl
Nein.
|
Re: Vista 2. Partition Registry-Zugriff schägt fehl
Welches HResult ist denn "Ein Aufruf einer Betriebssystemfunktion ist fehlgeschlagen." überhaupt? Wenn man danach sucht findet man nix. Kannst du das englische Sprachpaket installieren und die Meldung vllt in Englisch posten, da findet man sicher mehr.
|
Re: Vista 2. Partition Registry-Zugriff schägt fehl
GetLastError liefert 0 zurück.
|
Re: Vista 2. Partition Registry-Zugriff schägt fehl
hmm, das ist komisch. :gruebel:
Tritt das bei allen Programmen auf? |
Re: Vista 2. Partition Registry-Zugriff schägt fehl
Moin Zusammen,
RaiseLastOSError liest den Fehler mit GetLastError aus, und zeigt diesen dann an. Danach ist LastError wieder auf 0. Statt RaiseLastOSError aufzurufen, wenn OpenKey fehlschlägt, einfach mal direkt den Wert von GetLastError ausgeben lassen. |
Re: Vista 2. Partition Registry-Zugriff schägt fehl
@André: Ja, bei allen. (BDS, Putty, Installer, Project1.exe :) )
@Christian: Danke fürs Mitdenken. Der Code sah inzwischen schon so aus:
Delphi-Quellcode:
:)
procedure TForm1.Button1Click(Sender: TObject);
var Reg : TRegistry; begin Reg := TRegistry.Create(KEY_ALL_ACCESS); Reg.RootKey := HKEY_CURRENT_USER; if Reg.OpenKey('\Software\SPP', true) then reg.WriteString('Test', 'Ich war hier') else MessageDlg(inttostr(getlasterror), mtWarning, [mbOK], 0); reg.Free; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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