Vista -> Registry in LOCAL_MACHINE
*gruml* und schon das nächste problem ....
Delphi-Quellcode:
hab hier ein stückchen code, unter XP funkt das wunderbar
procedure TForm2.Button2Click(Sender: TObject);
var DummyArray : array[1..4] of Byte; NativeReg : TRegistry; S : String; Version : integer; ExeName : string; begin DummyArray[1] := 2; DummyArray[2] := 0; DummyArray[3] := 0; DummyArray[4] := 0; ExeName := 'meineExe'; NativeReg := TRegistry.Create; NativeReg.RootKey := HKEY_LOCAL_MACHINE; NativeReg.OpenKey('SOFTWARE\Clients\Mail', True); NativeReg.WriteString('', ExeName); NativeReg.CloseKey; NativeReg.OpenKey('SOFTWARE\Clients\Mail\'+ExeName, True); NativeReg.WriteString('', ExeName); NativeReg.CloseKey; NativeReg.OpenKey('SOFTWARE\Clients\Mail\'+ExeName+'\Protocols\mailto', True); NativeReg.WriteString('', 'URL:MailTo Protocol'); NativeReg.WriteBinaryData('Edit Flags', DummyArray, 4); NativeReg.WriteString('URL Protocol', ''); NativeReg.CloseKey; NativeReg.OpenKey('SOFTWARE\Clients\Mail\'+ExeName+'\Protocols\mailto\DefaultIcon', True); NativeReg.WriteString('', '"'+ExeName+'",0'); NativeReg.CloseKey; NativeReg.OpenKey('SOFTWARE\Clients\Mail\'+ExeName+'\Protocols\mailto\shell\open\command', True); NativeReg.WriteString('', '"'+ExeName+'" -newmail "%1"'); NativeReg.CloseKey; NativeReg.OpenKey('SOFTWARE\Clients\Mail\'+ExeName+'\shell\open\command', True); NativeReg.WriteString('', '"'+ExeName+'"'); NativeReg.CloseKey; NativeReg.Free; habs nun unter vista laufen ... ohne admin rechte bekomm ich normalen fehler, das er nicht schreiben darf ... alles klar, admin rechte gegeben, und jetzt läuft zwar alles ohne probs aber die registry ändert sich nicht ändere ich es auf HKEY_CURRENT_USER um, dann schreibt ers. |
Re: Vista -> Registry in LOCAL_MACHINE
UAC aktiv? Falls ja, wirklich auch mit Admin-Rechten gestartet (Über Kontextmenu "Als Administrator ausführen)?
Ansonsten landen deine Registry-Einträge in einem Virtuallen Bereich denn nur genau diese Exe zu Gesicht bekommt. |
Re: Vista -> Registry in LOCAL_MACHINE
Zitat:
Habs mit manifest probiert (was ja jetzt funkt) und auch als Admin ausgeführt in beiden fällen kommt die frage vom uac ob ich das programm zulassen will. Ohne Admin Rechte, werden die schreibzugriffe nicht umgeleitet, sondern machen ja einfach einen Fehler. aber werds mal ausprobieren, ob ichs im progrmam wieder lesen kann. Sieht man diese virtualisierung irgendwo? (Bei den Dateien (ini) kann man ja die virtualisierungen ja einblenden lassen) |
Re: Vista -> Registry in LOCAL_MACHINE
also, wenn ich mit dem gleichen programm wieder lese, dann bekomme ich die werte raus, die ich geschrieben haben
nur im registry editor sehe ich die nicht. auf was geht den diese virtualisierung? wenn ich eine kopie von dem programm erstelle (in einen neuen ordner) bekommt dann die auch dieses virtuellen daten? (wenn ich meine testanwendung kopiere - in neuen ordner, dann kann das auch diese geschriebenen daten lesen) |
Re: Vista -> Registry in LOCAL_MACHINE
Pack die Daten die Du da reinschreibst lieber in einer INI oder eine XML-Datei und schreib die in den Ordner ApplicationData. Da gehören die auch hin :)
|
Re: Vista -> Registry in LOCAL_MACHINE
Zitat:
das wird per ini oder xml etwas schwierig ;) |
Re: Vista -> Registry in LOCAL_MACHINE
so, ich glaub ich habs gefunden sogar hier im forum :)
ist kein problem mit vista sondern mit 64bit ... Registry: WOW6432NODE [edit]also funktioniert wunderbar, sogar mein MAPI Mail Client geht unter Vista64 Bit :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz