2010-12-21 3 views
0

모든 Win32 전문가에게. 창으로 기존 애플리케이션을 완료했다고 가정 해 봅시다. 작업은 (내) 창으로 다른 응용 프로그램을 작성하는 것입니다. 내 윈도우는 사용자가 기존 윈도우를 화면 위로 이동하는 동안 항상 왼쪽 가장자리를 기존 윈도우 오른쪽 가장자리에 정렬해야합니다 (사용자가 이동할 수없는 내 윈도우).Win32API 내 윈도우가 기존 윈도우를 따라갈 수있는 방법

사전 조건 : 기존 창을 서브 클래 싱 할 수 없음 b) Windows 후크는 대소 문자를 구분하지 않습니다.


네, 맞아요. 나는 그것이 문제가되지 않는다면이 질문을하지 않았다. 운영 체제가 Vista 2이고 응용 프로그램이 IE라고 말한 것을 잊었습니다. 나는 IE 메인 윈도우를 따르고, 가장자리를 정렬하는 애플리케이션을 만들려고한다. IE의 서브 클래 싱이 허용되지 않고 SetWindowsHook이 일반 사용자 (사용자가 관리자 권한을 가진 경우 응용 프로그램이 정상적으로 작동 함)에서 올바르게 작동하지 않습니다. Vista 이전의 Windows 환경에서 작업하는 모든 사람들의 이야기.

그리고이 작업을 해결하는 간단한 방법이없는 것처럼 보입니다. 다들 감사 해요.

+0

그래서 두 손을 등에 묶어서이 작업을 수행하고 싶습니까? –

답변

0

나는 당신이 후크 없이는 할 수 없다고 생각합니다. SetWindowLong을 사용하면 WndProc을 설정할 수 있지만 창이 다른 응용 프로그램에 속한 경우에는 작동하지 않습니다. 당신은/캔트 서브 클래스 또는 설정 글로벌 후크를 싶지 않는 경우

+0

그건 금지 된 방법입니다 : 서브 클래 싱하기 –

0

, 당신은 조사 할 수있는 사항은 다음과 같습니다

  • 는에서 LoadLibrary의 주소에 DLL에
  • 통화하는 CreateRemoteThread를 코드를 구현하고 DLL의 이름은 주입하기 위해 DLL을 대상 프로세스로 변환
  • DLL의 DllMain에서 창을 소유 한 스레드에만 SetWindowHook을 사용할 수 있습니다. 이것은 로컬 후크이며 특별한 권한을 필요로하지 않으며 시스템에 매우 유용합니다.
  • 후크 기능에서 주 창 HWND에서 WM_WINDOWPOSCHANGED를 처리하고 이에 따라 창을 조정하십시오.
관련 문제