Ho creato un'applicazione desktop Flex con Adobe Air. Ho bisogno di proteggere l'applicazione dall'essere catturata. Modificando l'affinità di visualizzazione della finestra dell'applicazione, l'applicazione può essere protetta dalla cattura. Come usare win API in flex? C'è qualche altro modo per proteggere la finestra dall'essere catturata?chiama Win32 API in flex per impostare Affinità visualizzazione finestra
risposta
Per prima cosa è necessario assicurarsi che la finestra principale non disponga dello stile di Windows WS_EX_LAYERED
. Questo stile rende SetWindowDisplayAffinity
non riuscito con il codice 8 (ERROR_NOT_ENOUGH_MEMORY
), almeno sulla mia macchina (Seven Pro 64 bit). Nello -app.xml file
, impostare il valore su false
per il nodo <transparent>
in <initialWindow>
.
In secondo luogo, è necessario scegliere come iniettare una normale DLL C nel processo dell'applicazione, poiché l'API non riuscirà con l'errore 5 (ERROR_ACCESS_DENIED
) se si tenta di modificare l'affinità di una finestra che non si trova nel processo del chiamante.
Un possibile metodo di iniezione utilizza l'API SetWindowsHookEx
. Google ti darà molti successi su questo. Sentiti libero di chiedere alcuni dettagli. Ovviamente hai bisogno della cooperazione di un altro processo, qui (e alcune pratiche API Win32).
Un altro modo possibile è la codifica di 'ACTIONSCRIPT® Extensions for ADOBE® AIR®' (PDF).
Il seguito sembra preferibile:
- No collaborazione da un processo esterno necessario.
- Adobe AIR esegue il caricamento della DLL.
- codice C/C++ molto più semplice.
ho usato la prima tecnica, come io sono più fluente in Win32 API prime su DLL, di me con l'aria e Action Script ...
ho testato con successo che prima tecnica con un semplice " Hello World "Applicazione AIR Desktop e ottieni una bella immagine" All Black "dopo la schermata di stampa.
- 1. Tasto rapido globale con API WIN32?
- 2. Modifica stile finestra Win32
- 3. Chiamate API Mocking e Win32
- 4. Ruby interfaccia win32 api
- 5. Qualsiasi API Win32 per ottenere gli screenshot?
- 6. Chiama Win32/NT-Native API dal sottosistema Windows per i processi Linux?
- 7. Win32: Portare una finestra in alto
- 8. OpenMP e affinità CPU
- 9. Ciclo di gioco in Win32 API
- 10. API Win32 chiamata Errore GetShortPathName in F #
- 11. Documentazione C++ Win32 API offline?
- 12. Possibile per l'app Win32 che chiama un'API WinRT?
- 13. Visualizzazione di una bitmap su una finestra di classe "BUTTON" in WIN32
- 14. come impostare CPU affinità di un particolare pthread?
- 15. IE9 non supporta la visualizzazione: inline-flex?
- 16. Impostare affinità CPU quando si crea un thread
- 17. Creazione di una finestra trasparente in C++ Win32
- 18. Come utilizzare le API win32 con python?
- 19. Come si nasconde una finestra dell'app win32?
- 20. std :: unique_ptr, deleters e API Win32
- 21. Win32 API analogico di invio/cattura SIGTERM
- 22. scelta tra API win32 e .NET framework
- 23. Disabilitare il ridimensionamento della finestra Win32
- 24. Chiamare il metodo API Win32 da Java
- 25. Come uscire dall'applicazione Win32 tramite API?
- 26. API Win32 per enumerare le funzioni di esportazione dll?
- 27. win32 api per ottenere la velocità corrente del processore
- 28. Creazione di menu di scelta rapida per Win32 API
- 29. Affinità thread Java
- 30. Impostazione affinità processo in modalità kernel
Ti dispiace se la mia risposta dice che devi costruire una DLL C, come "Air Extension" (per Air 3)? – manuell
Se si chiama setwindowdisplayaffinity da un altro processo, si restituisce ACCESS NEGATO. Allora sarà inutile. – Vishnu
La Dll sarebbe un'estensione AIR, in esecuzione nel processo dell'applicazione. Nessun "accesso negato" qui. – manuell