![]() |
Re: %programfiles% unter Windows 7 x64
Du testest ja auf nil. Mach es mal so, wie ich es geschrieben habe.
|
Re: %programfiles% unter Windows 7 x64
die prüfung auf nil ist dafür gedacht dass das programm auch auf 32bit systemen laufen soll und die diese funktion nicht haben!
und er geht ja in die funktion rein das is ja nicht das problem |
Re: %programfiles% unter Windows 7 x64
Sorry, das ist ja nur der test, ob die Funktion geladen wurde. Aber hier hast du keine fehlerüberprüfung:
Delphi-Quellcode:
Das will ich doch die ganze zeit wissen. Da sollst du meinen Code reinschreiben.
Wow64DisableWow64FsRedirection(Wow64FsEnableRedirection);
Bzw. hier:
Delphi-Quellcode:
Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection);
|
Re: %programfiles% unter Windows 7 x64
am ende der funktion wird GetLastError aufgerufen und als rückgabewert gesetzt.
diesen speichere ich und ist wie bereits mehrfach erwähnt 0! wenn ich daraus das mache wie du beschrieben hast macht er absolut nichts weil "if not Wow64DisableWow64FsRedirection(Wow64FsEnableRedire ction) then ..." nicht zutrifft weil 0 bei LongBool nunmal True ist |
Re: %programfiles% unter Windows 7 x64
GetLastError liefert "nur" den letzen Fehler ... bei OK muß dessen Wert also nicht stimmen.
Delphi-Quellcode:
und in kurz
function ChangeFSRedirection(const DisableIT: Boolean): Cardinal;
begin if (@Wow64EnableWow64FsRedirection <> nil) and (@Wow64DisableWow64FsRedirection <> nil) then begin if DisableIT then begin if Wow64DisableWow64FsRedirection(Wow64FsEnableRedirection) then Result := S_OK else Result := GetLastError; end else begin if Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection) then Result := S_OK else Result := GetLastError; end; end else Result := {hier einen Fehlercode für "nicht aktiv" einsetzen}; end;
Delphi-Quellcode:
function ChangeFSRedirection(const DisableIT: Boolean): Cardinal;
begin if Assigned(Wow64EnableWow64FsRedirection) and Assigned(Wow64DisableWow64FsRedirection) then begin if (DisableIT and Wow64DisableWow64FsRedirection(Wow64FsEnableRedirection)) or (not DisableIT and Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection)) then Result := S_OK else Result := GetLastError; end else Result := {hier einen fehlercode für "nicht aktiv" einsetzen}; end; |
Re: %programfiles% unter Windows 7 x64
Definier es mal als BOOL wie es auch in der Doku steht und frag GetLastError sofort ab, wer weiß, was da nach noch für Funktionsaufrufe kommen, die nicht fehlschlagen.
|
Re: %programfiles% unter Windows 7 x64
jetzt liefern beide Funktionen S_OK als Rückgabewert
rückgabewert geändert auf Bool und die Kurze Variante von unten samt nor = not änderung aber die pfade sind weiterhin alle auf Programfiles x86 |
Re: %programfiles% unter Windows 7 x64
Und das bei himitsus Code?
|
Re: %programfiles% unter Windows 7 x64
ja, das bei seinem Code :)
|
Re: %programfiles% unter Windows 7 x64
Jetzt wird es komisch. Welche Rechte hat das Programm? Ist ein Manifest eingebunden?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 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