2015-06-09 23 views
7

Stworzyłem aplikację Flex Desktop z Adobe Air. Muszę chronić aplikację przed przechwytywaniem. Zmieniając powinowactwo wyświetlania okna do okna aplikacji, można zabezpieczyć aplikację przed przechwyceniem. Jak korzystać z interfejsu API win w wersji flex? Czy istnieje inny sposób zabezpieczenia okna przed przechwyceniem?wywołanie Win32 API w trybie flex w celu ustawienia powinowactwa wyświetlania okien

+0

Czy myślisz, jeśli moja odpowiedź mówi, że musisz zbudować bibliotekę DLL jako "Air Extension" (dla Air 3)? – manuell

+0

Jeśli wywołasz setwindowdisplayaffinity z innego procesu, to zwraca ACCESS DENIED. Wtedy to nie będzie miało sensu. – Vishnu

+0

Dll będzie rozszerzeniem AIR, uruchomionym w procesie aplikacji. Brak "odmowy dostępu" tutaj. – manuell

Odpowiedz

1

Najpierw upewnij się, że główne okno nie ma stylu Windows WS_EX_LAYERED. Ten styl powoduje, że SetWindowDisplayAffinity kończy się niepowodzeniem z kodem 8 (ERROR_NOT_ENOUGH_MEMORY), przynajmniej na moim komputerze (Seven Pro 64 bity). W swoim -app.xml file ustaw wartość false dla węzła <transparent> pod <initialWindow>.

Po drugie, musisz wybrać sposób wstawiania zwykłej biblioteki DLL C w procesie aplikacji, ponieważ interfejs API zawiedzie z błędem 5 (ERROR_ACCESS_DENIED), jeśli spróbujesz zmienić powinowactwo okna, które nie występuje w procesie wywołującym.

Jedną z możliwych metod wtrysku jest użycie interfejsu API SetWindowsHookEx. Google da Ci wiele trafień dotyczących tego. Możesz poprosić o kilka szczegółów. Oczywiście musisz współpracować z innym procesem, tutaj (i niektórymi praktykami Win32 API).

Innym możliwym sposobem jest kodowanie 'ACTIONSCRIPT® Extensions for ADOBE® AIR®' (PDF).

Później wydaje preferowane:

  • Nie współpraca z procesu zewnętrznego potrzebne.
  • Adobe AIR robi ładowanie DLL dla Ciebie.
  • Kod C/C++ o wiele prostszy.

użyłem pierwszy technikę, ponieważ jestem bardziej biegły w surowych Win32 API około DLL, niż ja z powietrzem i Action Script ...

pomyślnie przetestowany że pierwsza technika z bardzo prostego " Hello World "Aplikacja AIR Desktop i uzyskaj ładny obraz" Wszystkie czarne "po ekranie drukowania.

Powiązane problemy