일단 GetForegroundWindow() API 함수로 활성 윈도우의 핸들을 얻어야겠군요.
그런 다음 그 윈도우에 있는 에디트 윈도우 핸들을 얻어야 할텐데, 여러 에디트가 있다면 원하는 것이 어떤
에디트인지 찾을 방법이 있어야 하겠는데요. 물론 활성 에디트라면 쉽겠고요.
키를 보내실 때는 키 메시지를 보내시는 것보다는 keybd_event() 함수를 쓰시는 것이 더 쉽고 빠를 겁니다.
그럼...
이재현 님이 쓰신 글 :
: 안녕하세요.
: 다른 프로그램을 띄워 놓고(무슨 프로그램이던지간에)
: 그 프로그램의 에디터 박스에 키보드 치듯이 글을 입력하게끔
: 프로그램을 짜고 싶습니다.
: 즉 강제로 글 입력을 하고 싶은데 어떻게 해야 하는지 알려주세요.
:
: 흠..
: 1. 마우스로 클릭한 글박스의 이벤트를 얻어서
: 2. sendmessage 등으로 글을 넣고 싶습니다. --;
: 3. 글넣고 엔터까지... --;
:
: 이걸 못하겠습니다...--;
: 답변 부탁드립니다.. ^^;
:
: 아래까지는 만들어 보았는데.. --;
: 그 프로그램의 캡션만 바뀌네요.. ㅠ.ㅠ
:
: var
: AHandle:THandle;
: WindowText:Array[0..255] of Char;
: begin
:
: AHandle := GetForegroundWindow();
: WindowText:='헐';
: SendMessage(AHandle,WM_SETTEXT,SizeOf(WindowText),LongInt(@WindowText));
:
: SendMessage(AHandle, WM_SETFOCUS, 0, 0);
: PostMessage(AHandle, WM_KEYDOWN, VK_RETURN, 0);
: SendMessage(AHandle, WM_CHAR, 13, 1);
: SendMessage(AHandle, WM_CHAR, 10, 1);
: end;
|