[C# API] 카카오톡 PC버젼 메세지 보내는 함수

using System.Runtime.InteropServices;
//이걸 참조해 줘야 DllImport 가능

참조해 준다.

[DllImport(“user32.dll”)]
public static extern int FindWindow(string lpClassName, string lpWindowName);
//FindWindow (최상위 창 핸들값 가져오는 API)

[DllImport(“user32.dll”)]
public static extern int FindWindowEx(int hWnd1, int hWnd2, string lpsz1, string lpsz2);
//FindWindowEX (인자로 받아온 핸들의 자식의 핸들값 가져오는 API)

[DllImport(“user32.dll”)]
public static extern int SendMessage(int hwnd, int wMsg, int wParam, string lParam);
//SendMessage

[DllImport(“user32.dll”)]
public static extern uint PostMessage(int hwnd, int wMsg, int wParam, int lParam);

//PostMessage

DLLIMPORT 해주자.

public void SendKatalk(string title, string msg)
{
    int hd01 = FindWindow(null, title);
    int hd03 = FindWindowEx(hd01, 0, “RichEdit20W”“”);

    SendMessage(hd03, 0x000c, 0, msg);
    PostMessage(hd03, 0x0100, 0xD, 0x1C001);

}

직접 만든 PC버젼 전용 카카오톡 보내는 함수다.

사용한 API만 봐도 무진장 무식하게 보낸걸 알수있다 -_-;;

FindWindow를 사용해 윈도우의 캡션값을 받아와 핸들값을 알아내고,

FindWindowEx를 이용해 그 자식의 핸들값 (여기선 카카오톡 채팅창의 텍스트 박스)을 가져온다.

그리고 SendMessage로 그 텍스트박스에 내용을 입력시키고,

PostMessage로 텍스트박스에 Enter 키를 보낸다.

하도 예전에 만들던거고, 그때도 제대로 이해 못하면서 만들어서 사실 나도 저 소스가 완벽히 이해가 안된다;;

WParam인지 LParam인지 너무 어려운것같다.

  • taewoong park

    혹시 특정경로의 이미지를 전송하거나,
    클립보드의 이미지를 전송할수는 없을까요?