actionscript-3 - enter_frame - flex pai



flex의 Win32 API를 호출하여 Window Display Affinity를 설정한다. (1)

먼저 주 창에 WS_EX_LAYERED Windows 스타일이 없는지 확인해야합니다. 그 스타일은 SetWindowDisplayAffinity 를 코드 8 ( ERROR_NOT_ENOUGH_MEMORY ), 적어도 내 컴퓨터 (Seven Pro 64 비트)에서는 실패하게 만듭니다. -app.xml file 에서 <initialWindow> 아래의 노드 <transparent> 에 대해 값을 false 로 설정하십시오.

둘째, 호출자 프로세스에 존재하지 않는 창의 선호도를 변경하려고하면 API가 오류 5 ( ERROR_ACCESS_DENIED )와 함께 실패하므로 일반 C DLL을 응용 프로그램 프로세스에 삽입하는 방법을 선택해야합니다.

한 가지 가능한 주입 방법은 SetWindowsHookEx API를 사용하는 것입니다. 구글이 당신에게 많은 히트 곡을 줄 것이다. 기꺼이 자세한 내용을 물어보십시오. 분명히 다른 프로세스 (여기서는 (일부 Win32 API 연습))의 협력이 필요합니다.

또 다른 가능한 방법은 'ADOBE® AIR® 용 ACTIONSCRIPT® Extension'입니다 (PDF) .

나중에는 더 좋아 보인다.

  • 외부 프로세스와의 협업이 필요 없습니다.
  • Adobe AIR에서 DLL을로드합니다.
  • C / C ++ 코드는 훨씬 간단합니다.

내가 AIR 및 Action Script를 사용하는 것보다 DLL에 대한 원시 Win32 API에 더 익숙하므로 첫 번째 기술을 사용했습니다 ...

매우 간단한 "Hello World"AIR Desktop 응용 프로그램으로 첫 번째 기술을 성공적으로 테스트하고 Print Screen 후에 좋은 "All Black"이미지를 얻습니다.

Adobe Air로 Flex Desktop 응용 프로그램을 만들었습니다. 응용 프로그램이 캡처되지 않도록 보호해야합니다. 응용 프로그램의 창 표시 선호도를 변경하면 응용 프로그램을 캡처하지 못하도록 보호 할 수 있습니다. 플렉스에서 win API를 사용하는 방법? 창을 캡처하지 못하도록 다른 방법이 있습니까?