SendMessage()로 메시지를 보내서 'a' 라는 문자를 노트패드에 ?

Tec의 이미지

CreateProcess()로 노트패드를 열고 SendMessage()로 메시지를 보내서 'a' 라는 문자를 노트패드에 찍고 싶습니다. 그래서 아래와 같이 만들어 봤는데 노트패드에는 아무 반응이 없습니다.

SendMessage의 매개변수가 잘못 된 것 같은 데 어떤 메시지와 wParam 과 lParam을 어떻게 해서 보내야 하는지요. 그리고 alt +s 메시지를 보내는 방법을 아신다면 이것도 알려주시면 감사하겠습니다.

좋은 하루 보내시기 바랍니다.
감사합니다.

#include "stdafx.h"
#include <iostream.h>
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
char c;
DWORD ExitCode;
STARTUPINFO si = {0,};
PROCESS_INFORMATION pi;

si.cb = sizeof(STARTUPINFO);
si.dwFlags = 0;

CreateProcess(NULL,"notepad.exe" , NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
HWND hw = FindWindow(NULL, si.lpTitle);
HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pi.dwProcessId);

cin >> c;

SendMessage(hw, WM_KEYDOWN, 'a', 0);

cin >> c;

return 0;
}
익명 사용자의 이미지

제가 볼때는

WM_KEYDOWN메세지가 아니고

WM_CHAR메세지 같은데요?

익명 사용자의 이미지

PostMessage()로 해보세요..