AW: Windows 7 64Bit Redirection
@Dezipaitor:
Könntest Du mir mal Deine exe hier anbieten? Ich arbeitet derzeit ohne die Jedi-Komponenten und würde sicher gehen wollen, dass diese funktionieren, bevor ich sie mir installiere. Ich habe bei den Jedi Komponenten sowieso keinen Überblick, welche ich da wann benötige. Aber das ist ein anderes Thema :-D |
AW: Windows 7 64Bit Redirection
Die JEDI API muss nicht installiert werden. Einfach die Pfade inkludieren.
Und hier gibt es eine Übersicht: http://wiki.delphi-jedi.org/index.php?title=Main_Page |
AW: Windows 7 64Bit Redirection
64Bit Redirection? Wieso immer gleich mit Kanonen auf Spatzen schießen? Die erste Antwort von jfheins ist Microsoft konform.
Zitat:
Solange man mit Delphi keine 64bit Programme erzeugen kann, reicht folgendes:
Delphi-Quellcode:
if IsProcess32OnWin64(GetCurrentProcess) then Exe:='%WinDir%\Sysnative\osk.exe' else Exe:='%WinDir%\system32\osk.exe';
IsProcess32OnWin64 ist gleichbedeutend mit Deiner Is64BitViaRegistry (und ist auch Microsoft konform).
Delphi-Quellcode:
function IsProcess32OnWin64(ProcessHandle:THandle):boolean;
type TIsWow64Process = function(Handle: THandle; var Res: BOOL): BOOL; stdcall; // Type of IsWow64Process API fn var IsWow64Result: BOOL; // Result from IsWow64Process IsWow64Process: TIsWow64Process; // IsWow64Process fn reference begin result:=false; IsWow64Process := GetProcAddress( GetModuleHandle('kernel32.dll'), 'IsWow64Process' ); if Assigned(IsWow64Process) then begin if IsWow64Process(ProcessHandle,IsWow64Result) AND IsWow64Result then result:=true; end; // google: Running 32-bit Applications (Windows) end; function IsProcess64bit(ProcessHandle:THandle):boolean; begin result:= IsWin64bit AND not IsProcess32OnWin64(ProcessHandle); end; |
AW: Windows 7 64Bit Redirection
Liste der Anhänge anzeigen (Anzahl: 1)
@gore
Danke für den Hinweis, aber wenn ich das mit Sysnative umsetze, erhalte ich von Shellexecute() die Rückmeldung 3 (Datei nicht gefunden). Also rufe ich generell '%WinDir%\system32\osk.exe' auf. @all Aber - und jetzt wird es verrückt - ich habe eine nachvollziehbare, aber nicht praktikable Lösung gefunden. Ich habe zwei Schaltflächen: 1. Schaltfläche ist Version 1 mit ChangeFSRedirection() 2. Schaltfläche ist Version 2 mit IsProcess32OnWin64 von gore
Danach schließe ich das kleine Testprogramm:
Ich kann mir das Verhalten nicht erklären. Also habe ich versucht, eine Mischung von beidem zu erstellen, aber dann habe ich wieder Shellexecute() mit Rückgabe von 5.
Delphi-Quellcode:
Ich bin echt am Verzweifeln. Langsam muss ich davon ausgehen, dass an meinen frisch installierten, englischen Windows 7 64 Bit irgendetwas nicht funktioniert.
IsProcess32OnWin64(GetCurrentProcess); // von gore
ChangeFSRedirection(true); // Redirect stoppen Path := CreateCorrectWinDir('%WinDir%\system32\osk.exe'); Memo1.Lines.Add('start von ' + Path); isStarted := ShellExecute(0, 'open', PChar(Path), '', '', SW_SHOWNORMAL); Memo1.Lines.Add('isStarted : ' + IntToStr(isStarted)); ChangeFSRedirection(false); // Redirect wieder starten Könntet Ihr daher bitte noch einmal mein Testprogramm (bereits kompiliert) probieren und mir Eure Ergebnisse unter Eurem Windows 7 64Bit durchgeben? |
AW: Windows 7 64Bit Redirection
Liste der Anhänge anzeigen (Anzahl: 1)
Probier mal die angehängte Version
|
AW: Windows 7 64Bit Redirection
Zitat:
Zitat:
|
AW: Windows 7 64Bit Redirection
Vergiß alles, ich hab mich gerade damit etwas beschäftigt.
Unter XE kann man Osk.exe einfach ausführen. Im 64bit Explorer geht es nicht. Hier wird geraten, dass .NET mit abgeschalteten Redirection nicht funktioniert. Das Shell zeugs mit ShellExecute geht alles außerdem über COM, denn ich bekomme, wenn ich
Delphi-Quellcode:
verwende, eine Prozedur wurde (im Modul) nicht gefunden. D.h. das alles ist in Windows ganz tief drin, denn osk.exe ist ja auch in der WhiteList für AutoElevation.
CoInitializeEx(nil, COINIT_APARTMENTTHREADED or COINIT_DISABLE_OLE1DDE);
Delphi scheint da irgendetwas mit .NET inuts zu haben, damit es funktioniert. |
AW: Windows 7 64Bit Redirection
Also wieder Start bei 0 :pale:
Könntet Ihr bitte einmal meine osk.zip ausprobieren, ob ihr den o.g. Ablauf auch bei Euch bestätigen könnt. Danke. |
AW: Windows 7 64Bit Redirection
Mit FreePascal eine kleine 64bit App bauen, die das für dich macht. Vielleicht gehts so.
|
AW: Windows 7 64Bit Redirection
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 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