Eine Neuveröffentlichung des aktualisierten Codes, der ursprünglich vor etwa 20 Jahren geschrieben wurde.
Beachten Sie, dass in manchen Fällen sowohl eine 32- als auch eine 64-Bit-Version einer DLL erforderlich sind.
Projekte werden in Delphi XE2 und höher kompiliert. Die Wahl fiel auf XE2, da es sowohl für 32- als auch für 64-Bit kompiliert werden kann und einen geringen binären Platzbedarf hat.
Für Delphi Berlin wird eine Manifestdatei bereitgestellt, die „uiAccess“ enthält. In neueren IDEs ist diese Option integriert. Das Debuggen erfolgt am besten mit einem Manifest, das „uiAccess“ nicht enthält. „LinkManifests.cmd“ generiert symbolische Links zum bereitgestellten Manifest.
Ab Windows 10.1903.18362.295 ermöglichte eine Sandbox-VM Debugtests ohne Codesignatur.
Am besten ändern Sie den DLL-Namen, ändern Sie den Mapfile-Dateinamen und befolgen Sie diese Schritte:
Ohne diesen Hook schlägt eine „uiAccess“-App fehl und sperrt möglicherweise Ihre App.
Aufnahme und Wiedergabe eines Journal-Hooks. Der Code kann sich in einer EXE- oder DLL-Datei befinden und funktioniert sowohl für 32- als auch für 64-Bit-Versionen ohne zusätzliche Version. Allerdings habe ich das so gelesen, dass es am besten ist, eine DLL zu verwenden, da nicht-native Bitness-Apps Ihren Code am Ende über einen Thunking-Mechanismus laden.
Bindet alle über PostMessage geposteten Nachrichten ein. Am besten verfeinern Sie, was Sie ansehen müssen, und lassen den Rest durch. Die aktuelle Demo sendet einfach eine Nachricht an die ursprüngliche App zurück, wenn auf ein Systemmenü geklickt wird.
Verbindet alle GetMessage- oder PeekMessage-Funktionen, wenn eine Tastaturnachricht (WM_KEYUP oder WM_KEYDOWN) verarbeitet werden muss. Die aktuelle Demo sendet einfach eine Nachricht zurück an die ursprüngliche App, wenn ALT+Numkey_1 verwendet wird.
Fügt die DLL mithilfe ihrer PID in einen Prozess ein, wobei ein DDetours-Aufruf im Wesentlichen eine API umleitet.
Diese Methode könnte einen Hook-Prozess verwenden, der für einen einzelnen Prozess spezifisch ist, um die Belastung des Systems zu verringern.
Einfachster Weg zum Testen:
Erfordert: Delphi Detours-Bibliothek