'IT/후킹'에 해당되는 글 2건

  1. 2010.02.23 [MFC] 활성화 창 한/영 체크 및 변환
  2. 2010.01.08 IME 메시지를 hooking 하는 방법
posted by 방랑군 2010. 2. 23. 17:03
  if( !(hIMC = ImmGetContext( GetActiveWindow() ) ) )                    // 핸들을 얻어오고,
   break;


  ImmGetConversionStatus( hIMC, &dwConversion, &dwSentence);    // 현재 IME의 상태를 얻어서
  if(dwConversion & IME_CMODE_HANGEUL)                                    // 만약 한글 모드라면
   dwConversion -= IME_CMODE_HANGEUL;                                    // 한글 모드 안되게...
  
  ImmSetConversionStatus( hIMC, IME_CMODE_ALPHANUMERIC, IME_SMODE_NONE);    // 한글모드아니게 설정
  ImmReleaseContext( GetActiveWindow(), hIMC );                            //얻은 핸들 풀어주고


이런식...
IME_CMODE_HANGEUL 
IME_CMODE_JAPANESE
.. 등등<


Imm32.lib와 
Imm.h를 사용한다.

'IT > 후킹' 카테고리의 다른 글

IME 메시지를 hooking 하는 방법  (0) 2010.01.08
posted by 방랑군 2010. 1. 8. 16:23

http://support.microsoft.com/kb/601978/ko


IME message들은 OS가 Application의 message queue 로 posting하는 message가 아니라, 각 application의 WinProc를 직접 call하는 message이므로, CallWndProc hook procedure를 이용하여 hooking해야 합니다. 
다음은 WM_IME_NOTIFY message를 hooking하는 DLL 의 예제코드입니다.

## Hooking Procedure에서 추가되는 함수들은 user의 input를 기다리는 API는 사용하지 마십시오. 이것은 system의 performance를 떨어뜨리거나 심지어는 dead-lock 발생의 원인이 됩니다.


HHOOK hHook = NULL;
HINSTANCE hHookDll;
LRESULT CALLBACK GetMsgProc(int code,  WPARAM wParam,  LPARAM lParam);

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
)
{
hHookDll = (HINSTANCE )hModule;
     return TRUE;
}

BOOL APIENTRY  SetHookProc()
{
hHook =  SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,hHookDll,0);
if (hHook)
return true;
else
return false;
}

void APIENTRY UnsetHookProc()
{
UnhookWindowsHookEx(hHook);
}

LRESULT CALLBACK GetMsgProc(int code,  WPARAM wParam,  LPARAM lParam)
{
   MSG *msg = (MSG *)lParam;
   if ( msg->message == WM_IME_NOTIFY)
   {
   // TODO : Add to code what you want to act
  
   // Always call next hook in chain 
   return CallNextHookEx(hHook, code,  wParam, lParam);
}



'IT > 후킹' 카테고리의 다른 글

[MFC] 활성화 창 한/영 체크 및 변환  (0) 2010.02.23