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);
}