AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Vista -> Registry in LOCAL_MACHINE
Thema durchsuchen
Ansicht
Themen-Optionen

Vista -> Registry in LOCAL_MACHINE

Ein Thema von Gruber_Hans_12345 · begonnen am 16. Mär 2007 · letzter Beitrag vom 16. Mär 2007
Antwort Antwort
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#1

Vista -> Registry in LOCAL_MACHINE

  Alt 16. Mär 2007, 09:52
*gruml* und schon das nächste problem ....

Delphi-Quellcode:
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;
hab hier ein stückchen code, unter XP funkt das wunderbar

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.
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Vista -> Registry in LOCAL_MACHINE

  Alt 16. Mär 2007, 10:10
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Vista -> Registry in LOCAL_MACHINE

  Alt 16. Mär 2007, 10:14
Zitat von Bernhard Geyer:
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.
ja, alles standard aktiviert.

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)
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Vista -> Registry in LOCAL_MACHINE

  Alt 16. Mär 2007, 10:27
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)
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#5

Re: Vista -> Registry in LOCAL_MACHINE

  Alt 16. Mär 2007, 10:32
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
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Vista -> Registry in LOCAL_MACHINE

  Alt 16. Mär 2007, 10:58
Zitat von Phoenix:
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
Das ist der pfad, um mein programm als eMail programm zu registrieren, damit man von anderen andwendugnen per mailto und per mapi emails senden kann.
das wird per ini oder xml etwas schwierig
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Vista -> Registry in LOCAL_MACHINE

  Alt 16. Mär 2007, 11:52
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
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es 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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:41 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