2015-06-09 18 views
7

Tôi đã tạo một Ứng dụng Máy tính để bàn Flex với Adobe Air. Tôi cần bảo vệ ứng dụng không bị bắt. Bằng cách thay đổi mối quan hệ hiển thị cửa sổ của ứng dụng, ứng dụng có thể được bảo vệ khỏi bị bắt. Làm thế nào để sử dụng win API trong flex? Có cách nào khác để bảo vệ cửa sổ không bị bắt không?gọi Win32 API trong flex để đặt Window Display Affinity

+0

Bạn có phiền nếu câu trả lời của tôi nói rằng bạn phải xây dựng một DLL C, như là một "Mở rộng không khí" (cho Air 3)? – manuell

+0

Nếu bạn gọi setwindowdisplayaffinity từ quá trình khác, nó trả về ACCESS DENIED. Sau đó, nó sẽ không được sử dụng. – Vishnu

+0

Các dll sẽ là một phần mở rộng AIR, chạy trong quá trình ứng dụng. Không có "truy cập bị từ chối" ở đây. – manuell

Trả lời

1

Trước tiên, bạn phải đảm bảo rằng cửa sổ chính không có kiểu dáng WS_EX_LAYERED Windows. Kiểu đó làm cho SetWindowDisplayAffinity không thành công với mã 8 (ERROR_NOT_ENOUGH_MEMORY), ít nhất là trên máy của tôi (Bảy Pro 64 bit). Trong số -app.xml file, đặt giá trị thành false cho nút <transparent> theo <initialWindow>.

Thứ hai, bạn phải chọn cách tiêm một DLL C thông thường trong quy trình đăng ký, vì API sẽ thất bại với lỗi 5 (ERROR_ACCESS_DENIED) nếu bạn cố thay đổi ái lực của cửa sổ không sống trong quá trình gọi.

Một phương pháp tiêm có thể đang sử dụng API SetWindowsHookEx. Google sẽ cung cấp cho bạn nhiều lượt truy cập về điều đó. Hãy yêu cầu một số chi tiết. Bạn rõ ràng là cần sự hợp tác của một quá trình khác, ở đây (và một số thực hành API Win32).

Một cách khác có thể là mã hóa 'ACTIONSCRIPT® Extensions for ADOBE® AIR®' (PDF).

này sau đó dường như thích hợp hơn:

  • Không hợp tác từ một quá trình bên ngoài cần thiết.
  • Adobe AIR thực hiện tải DLL cho bạn.
  • Mã C/C++ đơn giản hơn nhiều.

tôi đã sử dụng kỹ thuật đầu tiên, như tôi thông thạo hơn trong Win32 API liệu về DLL, hơn tôi với AIR và Action Script ...

Tôi đã thử nghiệm thành công rằng kỹ thuật đầu tiên với một rất đơn giản " Hello World "Ứng dụng AIR Desktop và có được hình ảnh" Tất cả đen "đẹp mắt sau khi in màn hình.

Các vấn đề liên quan