actionscript 3 - llame a Win32 API en flex para configurar la ventana de visualización de afinidad
actionscript-3 winapi (1)
Primero debe asegurarse de que la ventana principal no tenga el estilo de Windows WS_EX_LAYERED
. Ese estilo hace que SetWindowDisplayAffinity
falle con el código 8 ( ERROR_NOT_ENOUGH_MEMORY
), al menos en mi máquina (Seven Pro 64 bits). En su -app.xml file
, establezca el valor en false
para el nodo <transparent>
en <initialWindow>
.
En segundo lugar, debe elegir cómo inyectar una DLL de C normal en el proceso de la aplicación, ya que la API fallará con el error 5 ( ERROR_ACCESS_DENIED
) si intenta cambiar la afinidad de una ventana que no vive en el proceso de llamador.
Un posible método de inyección es usar la API de SetWindowsHookEx
. Google le dará muchos éxitos sobre eso. Siéntase libre de pedir algunos detalles. Obviamente necesita la cooperación de otro proceso, aquí (y algunas API de Win32 practican).
Otra forma posible es codificar una ''Extensiones ACTIONSCRIPT® para ADOBE® AIR®'' (PDF) .
Lo posterior parece preferible:
- No se necesita colaboración de un proceso externo.
- Adobe AIR carga la DLL por usted.
- Código C / C ++ mucho más simple.
Utilicé la primera técnica, ya que soy más fluido en las API Win32 sin formato sobre DLL, que con AIR y Action Script ...
Probé con éxito esa primera técnica con una aplicación de escritorio AIR "Hello World" muy simple, y obtuve una bonita imagen "All Black" después de Print Screen.
Creé una aplicación de escritorio de Flex con Adobe Air. Necesito proteger la aplicación de ser capturada. Al cambiar la afinidad de visualización de la ventana de la aplicación, la aplicación puede protegerse de ser capturada. ¿Cómo usar win API en flex? ¿Hay alguna otra forma de proteger la ventana de ser capturada?