win32_step_21 - 8BitsCoding/RobotMentor GitHub Wiki
์ฐ์ ์นดํก๋ฐฉ์ Spy++๋ฅผ ์ดํด๋ณด์.
๋ํ์์๋ ๋ง์ ์๋์ฐ์์ ์ฐพ๊ธฐ์ ๋จ์ ๋ํ์์๋ก ์ฐพ์ผ๋ฉด ์ํํ ์ ์๋ค.
๊ธ ์ ๋ ๋ถ๋ถ์ด RitchEdit์ธ๋ฐ ์ด๊ฑธ ๊ธฐ์ค์ผ๋ก ์ฐพ์ผ๋ฉด ๋๊ฒ ๋ค.
์ถ๊ฐ) PostMessage๋ฅผ ์ธ ๋ ๋ด๊ฐ ์ธ ๋ฉ์์ง๋ง ๋ณด๊ณ ์ถ๋ค๋ฉด??
๋ฉ์์ง ์ต์ ์์ ๋ด๊ฐ ๋ณผ ๋ฉ์์ง๋ง ์ ํ
๋ด๊ฐ ๋๋ฅธ ๋ฉ์์ง๋ง ์ถ๋ ฅ๋๋ค
๋ณด๊ณ ์ถ์ ๋ฉ์์ง ์ฐํด๋ฆญ ํ ์์ฑ ํด๋ฆญ
wParam, lParam ๋ฌด์์ ์ ๋ ฅํด์ผํ๋์ง ์ ๋ณด๊ฐ ๋์จ๋ค.
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (uMsg == WM_DESTROY) {
PostQuitMessage(0);
}
else if (uMsg == WM_LBUTTONDOWN) {
HWND h_find_wnd = NULL;
while (h_find_wnd = FindWindowEx(NULL, h_find_wnd, L"#32770", NULL)) {
HWND h_edit_wnd = FindWindowEx(h_find_wnd, NULL, L"RichEdit20W", NULL);
if (h_edit_wnd != NULL) {
SendMessage(h_edit_wnd, WM_SETTEXT, 0, (LPARAM)L"์๋
ํ์ธ์");
// SendMessage๋ ๋๊ธฐ์์ผ๋ก ๋ฉ์์ง๋ฅผ ์ฆ๊ฐ ์ฒ๋ฆฌ
Sleep(200); // ๋๋ฌด๋นจ๋ฆฌ ์ํฐ๋ฅผ ์น๋ฉด ๋๋ ์ด๋ฅผ ๋ฃ์
PostMessage(h_edit_wnd, WM_KEYDOWN, 0x0000000D, 0x001C001); // ์ํฐํค๋ฅผ ๋๋ฆ
PostMessage(h_edit_wnd, WM_KEYDOWN, 0x0000000D, 0xC01C001); // ์ํฐํค๋ฅผ ๋๋ฆ
// PostMessage๋ ๋ฉ์์ง ํ์ ๋ฉ์์ง๋ฅผ ๋ฃ๋๋ค.(์์ )
break;
}
}
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}