Man kann bestimmt vom Programm aus alles in der Registry machen was man auch mit Regedit machen kann. Dazu ist eigentlich kein Bedarf da.
Die ursprüngliche Idee war, mit Delphi Code was in der Registry machen und dann der Einfachheit halber mit Regedit kontrollieren. Damit man nicht 'Regedit' schreiben muss oder einen Link klickt sollte Regedit gleich vom Programm aus zu öffnen sein.
Jetzt wo klar wurde dass es nicht so einfach ist ein 64Bit Programm aus einer 32Bit Anwendung zu starten interessiert es erst recht.
Werde mal schauen ob ich mit deinem Hinweis weiter kommen.
Schon mal vielen Dank und liebe Grüsse - Netpilots
Die Lösung welche zu funktionieren scheint.
In der entsprechenden
Unit, vor oder nach
'implementation'
'{$R *.dfm}'
diesen Code einfügen.
Code:
var Wow64FsEnableRedirection: LongBool;
Function Wow64DisableWow64FsRedirection(Var Wow64FsEnableRedirection: LongBool): LongBool; StdCall; External 'Kernel32.dll' Name 'Wow64DisableWow64FsRedirection';
Function Wow64RevertWow64FsRedirection(Wow64FsEnableRedirection: LongBool): LongBool; StdCall; External 'Kernel32.dll' Name 'Wow64RevertWow64FsRedirection';
Dann im Teil wo man ein x64 Programm (in unseren Fall regedit.exe) unter dieser 32Bit Anwendung starten möchte.
Code:
if IsWOW64 then
begin
if Wow64DisableWow64FsRedirection(Wow64FsEnableRedirection) then
begin
ShellExecute(
Handle,'open', PChar('Regedit.exe'), nil, nil, SW_SHOWNORMAL);
Wow64RevertWow64FsRedirection(Wow64FsEnableRedirection);
end;
end;
Quelle welche für diesen Code verwendet wurde:
http://embarcadero.newsgroups.archiv...007109312.html
Hätte noch Beispiele aus DelphiPraxis aber mit viel mehr Code:
http://www.delphipraxis.net/155861-w...direction.html