Zitat von
himitsu:
Da kernel32.dll in deinen Anwendungen eh immer bereits geladen sein wird, brauchst du ssie nicht nochmals zu laden/freizugeben ^^
FreeLibrary(hHandle); entfällt und
hHandle := LoadLibrary('kernel32.dll'); wird durch
hHandle := GetModuleHandle('kernel32.dll'); ersetzt.
Dein IsWin64 kannst du eigentlich auch weglassen, denn du fühst die Anwendung ja so oder so aus, selbst wenn Wow64DisableWow64FsRedirection nicht funkioniert.
Außerdem wird Wow64DisableWow64FsRedirection eh nur unter Win64 laufen.
Also kann man auch durch Aufrufen 'ner Win64-Funktion gleich mit auf Win64 testen.
Hallo himitsu,
danke mal wieder für Deine Optimierung des Codes. Funktioniert jetzt unter Win64 (Vista) und
Win32 (XP, SP2) fast ohne Probleme oder Fehler.
Einziges Problem habe ich mit der
TTaskDialog Komponente von TMS. Sobald eine Datei über FileExec() aufgerufen wurde, kann der Dialog nicht mehr angezeigt werden (keine Fehlermeldungen o.ä.).
ShowMessage(), MessageDlg() funktionieren normal ...
Dieser Fehler taucht übrigens nicht auf, wenn ich die Datei direkt über Shellexecute() (also ohne Wow64DisableWow64FsRedirection) ausführe.