안녕하세요.
다른 프로그램을 띄워 놓고(무슨 프로그램이던지간에)
그 프로그램의 에디터 박스에 키보드 치듯이 글을 입력하게끔
프로그램을 짜고 싶습니다.
즉 강제로 글 입력을 하고 싶은데 어떻게 해야 하는지 알려주세요.
흠..
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;
엔터는 WindowText:='헐'+#13#10;
이렇게 하면 되구요..
핸들을 얻어오는 것은 FindWindow와 FindWindowEx Win API 함수를
이용하면 됩니다.
앞에꺼가 창의 핸들을 가지고 오는것이고 그 다음 것이
child 의 핸들을 가지고 오는 거라고 하는군요..
제가 해본건 아니구요.. 어디 질답 게시판에 있었거든요..
FindWindow 함수는 찾아보시면 많이 나와 있구요..(사용법이)
FindWindowEx만 찾아보시면 될거 같습니다.
FindWindow 함수의 인자가 두개인데..
FindWindow(classname,WindowCaption)
이렇게 되거든요..
그럼 창이름은 창의 꼭데기에 있는 이름인데..클래스 네임은 어떻게
가지고 오느냐는 이것도 해본적이 없지만..
Spy++ 이런 프로그램으로 클래스이름 까지도 볼수 있다고 합니다.
한델과 델마당에서 찾아보세요~~
유사한 답변이 있습니다.