AW: Windows 7 64Bit Redirection
Kleiner Nachtrag.
Du solltest meines Erachtens nach nicht extra testen ob du auf x64 läufst und vor allem nicht via Registry sondern via GetNativeSystemInfo. Wie gesagt, testen ist aber m.E.n. unnötig, weil auf einem 32bit-System die Funktionen nicht von kernel32.dll exportiert werden ;) |
AW: Windows 7 64Bit Redirection
Also dieser Code startet bei mir osk 64bit. Ohne Wow64DisableWow64FsRedirection wollte osk garnicht erst starten. Die 32Bit funkz wohl nicht unter 64bit (oder will nicht).
Delphi-Quellcode:
ShowMessage funktioniert nur dann, wenn es mindestens einmal vor Wow64DisableWow64FsRedirection aufgerufen wurde. Sonst sind nicht alle DLLs geladen und es wird versucht eine 64bit DLL in einen 32bit Prozess zu laden. Zumindest ich bekomme eine generische Exception C0FB007E, was wohl vom Delphi delay loader Mechanismus stammt. $7E = 126d ist übrigens der Win32 Code für Modul nicht gefunden.
uses
JwaWindows, SysUtils; function GetNativeWindowsDirectory : String; var P : array[0..MAX_PATH] of Char; begin SHGetFolderPath(0, CSIDL_SYSTEM, 0, SHGFP_TYPE_DEFAULT, @P); result := P; end; var oldValue : Pointer; Path : String; begin Path := GetNativeWindowsDirectory + '\osk.exe'; if not Wow64DisableWow64FsRedirection(oldValue) then RaiseLastOSError; ShellExecuteW(0, 'open', PChar(Path), '', '', SW_SHOWNORMAL); Wow64RevertWow64FsRedirection(oldValue); end. |
AW: Windows 7 64Bit Redirection
Ich danke Euch für die rege Teilnahme an meinem Problem :roll:
Leider wird das irgendwie nichts bei mir. Showmessage habe ich durch Memo.Lines.Add ersetzt und jetzt werden auch die Ausgaben gemacht.
Aber osk.exe startet immer noch nicht. Also habe ich mir den Rückgabewert von Shellexecute ausgeben lassen. Der sollte über 32 sein, aber es wird eine 5 ausgegeben. Und die besagt "Der Zugriff wurde auf die angegebene Datei verweigert." Ich weiß nicht warum... Kann mir das jemand erklären? Danke. |
AW: Windows 7 64Bit Redirection
auch wenn Du die Anwendung als Administrator startest?
|
AW: Windows 7 64Bit Redirection
Zusammen mit Thomas' Vorschlag würde ich noch vorschlagen, daß du Process Monitor von (Sysinternals/MS Technet) mal ne Chance gibst. Wenn du dann so filterst, daß nur dein Programm und osk.exe angezeigt werden und es auf Dateiaktionen beschränkst, kannste den gefilterten Dump (PML!) hier mal anhängen und dann können wir alle miträtseln ;)
|
AW: Windows 7 64Bit Redirection
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich habe einmal das Log vom Process Monitor angehangen. Ich hoffe, ihr könnt erkennen, wo das Problem ist. Das 64 Bit System ist übrigens in Englisch, was aber nicht das Problem sein sollte, oder?
@Bummi: Dasselbe passiert auch, wenn ich das Programm als Admin ausführe. Ich wünsche Euch allen einen schönen Sonntag. |
AW: Windows 7 64Bit Redirection
Hast du mal meinen Code ausprobiert oder machst du eine neue EXE zum testen, weil die alte Exe funktioniert bei mir nicht.
|
AW: Windows 7 64Bit Redirection
Zitat:
Zitat:
Zitat:
|
AW: Windows 7 64Bit Redirection
Wie gesagt, sein Code funktioniert bei mir nicht, meiner jedoch schon.
Vielleicht mal testen? Solange das nicht geschehen ist, werde ich auch nicht mehr weiter raten. |
AW: Windows 7 64Bit Redirection
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz