Einzelnen Beitrag anzeigen

netpilots

Registriert seit: 13. Nov 2004
Ort: Zürich
33 Beiträge
 
Delphi 6 Enterprise
 
#9

AW: Programme ausführen, Win+R

  Alt 4. Apr 2013, 22:53
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

Geändert von netpilots ( 5. Apr 2013 um 01:00 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat