Una reedición del código actualizado escrito originalmente hace unos 20 años.
Tenga en cuenta que en algunos casos se requiere una versión de 32 y 64 bits de una DLL.
Los proyectos se compilarán en Delphi XE2 y versiones posteriores. Se eligió XE2 ya que compilará para 32 y 64 bits con una huella binaria pequeña.
Se proporciona un archivo de manifiesto para Delphi Berlín que incluye 'uiAccess'. Los IDE más nuevos tienen esta opción incorporada. La depuración se realiza mejor con un manifiesto que no incluya 'uiAccess'. 'LinkManifests.cmd' generará enlaces simbólicos al manifiesto proporcionado.
A partir de Windows 10.1903.18362.295, una máquina virtual Sandbox permitía pruebas de depuración sin firma de código.
Lo mejor es cambiar el nombre de la DLL, cambiar el nombre del archivo Mapfile y seguir estos pasos:
Sin este enlace, la aplicación 'uiAccess' fallará y posiblemente bloqueará su aplicación.
Grabación y reproducción de un gancho de Journal. El código puede residir dentro de un EXE o DLL y funciona tanto para 32 como para 64 bits sin una versión adicional. Sin embargo, la forma en que leo esto es que es mejor usar una DLL, ya que las aplicaciones de bits no nativos terminarán cargando su código a través de un mecanismo de procesamiento.
Engancha todos los mensajes publicados a través de PostMessage; lo mejor es refinar lo que necesitas ver y dejar que el resto fluya. La demostración actual simplemente envía un mensaje a la aplicación original cuando se hace clic en un menú del sistema.
Engancha todas las funciones GetMessage o PeekMessage cuando hay un mensaje de teclado (WM_KEYUP o WM_KEYDOWN) para procesar. La demostración actual simplemente publica un mensaje en la aplicación original cuando se usa ALT+Numkey_1.
Inyecta la DLL en un proceso usando su PID, donde una llamada DDetours esencialmente redirige una API.
Este método podría utilizar un proceso Hook específico para un solo proceso para reducir la carga en el sistema.
La forma más sencilla de realizar la prueba:
Requiere: Biblioteca de desvíos de Delphi