AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Datei ausführen unter Windows 64-Bit
Thema durchsuchen
Ansicht
Themen-Optionen

Datei ausführen unter Windows 64-Bit

Ein Thema von Rakshasa · begonnen am 18. Feb 2007 · letzter Beitrag vom 2. Apr 2007
 
Benutzerbild von Rakshasa
Rakshasa

Registriert seit: 1. Nov 2003
182 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Datei ausführen unter Windows 64-Bit

  Alt 20. Feb 2007, 00:00
Zitat von himitsu:
zwar kein alter C-ler, aber dennoch ein grober Versuch?
........
Die (aufgehobene) Umleitung sollte doch wohl auch auf ShellExecute eine Auswirkung haben.
[add] ungetestet!
Hallo,

besten Dank Himitsu, es hat super geklappt!!!
(Bis auf eine kleine Änderung: Du hast
Wow64RevertWow64FsRedirection(Wow64FsEnableRedirection); geschrieben; ich hab das zu einem
Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection); geändert)
Ich habe das Ganze in eine kleine Function gepackt, diese überprüft mittels IsWin64, ob ein 64-Bit-Windows vorliegt oder nicht und führt das dementsprechend dann aus. Habe leider keine Möglichkeit, das auf Win32 zu testen; vielleicht kann das ja mal jemand machen und hier ein kleines Feedback posten?!
Wenn jemand was Schöneres für isWin64() hat, möge er es ebenfalls posten...

Delphi-Quellcode:

uses ShellApi, Registry, Windows;

Function Wow64DisableWow64FsRedirection(Var Wow64FsEnableRedirection: LongBool): LongBool; StdCall;
 External 'Kernel32.dllName 'Wow64DisableWow64FsRedirection';
Function Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection: LongBool): LongBool; StdCall;
 External 'Kernel32.dllName 'Wow64EnableWow64FsRedirection';
Var Wow64FsEnableRedirection: LongBool;

....

Function FileExec(const sDatei: String): Integer;
 Function IsWin64: Boolean;
 begin
  With TRegistry.Create do begin
   RootKey := HKEY_LOCAL_MACHINE;
   Result := KeyExists('\SOFTWARE\Wow6432Node');
   Free;
  end;
 end;
begin

if isWin64 then begin

 If Wow64DisableWow64FsRedirection(Wow64FsEnableRedirection) Then Begin
  Result := ShellExecute(0, nil, PChar(sDatei), nil, nil, 0);
  Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection);
 End else
 Result := ShellExecute(0, nil, PChar(sdatei), nil, nil, 0);

end else
 Result := ShellExecute(0, nil, PChar(sdatei), nil, nil, 0);

end;
  Mit Zitat antworten Zitat
 


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 22:28 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