안녕하세요. 천리안 프로그래머 포럼 델파이 담당자 댁스터(강범석)입니다.
먼저 클립보드를 사용하려면 uses절에 Clipbrd 유닛을 추가하셔야 합니다.
그리고 메모의 MaxLength가 되었을 때 다음과 같이 해 주시면 됩니다.
var
h: THandle;
begin
h := FindWindowEx(FindWindow('Notepad', nil), 0, 'Edit', nil);
if (h = 0) then
ShowMessage('노트패드를 찾지 못했습니다.')
else
begin
ClipBoard.AsText := Memo1.Text;
SendMessage(h, WM_PASTE, 0, 0);
end;
end;
먼저 노트패드의 실제 입력할 수 있는 영역에 대한 핸들을 얻습니다. 위 소스에서
Notepad는 노트패드 어플리케이션에 관한 클래스 이름이고, Edit는 실제 입력할
수 있는 클라이언트 영역에 대한 클래스 이름입니다. 참고로 Spy++을 이용해서
위 2개의 클래스 이름을 얻었습니다.
그리고 핸들이 할당이 되지 않으면 에러 메시지를 보내고 찾았으면 현재 Memo에
있는 내용을 클립보드로 복사하고 노트패드에 붙여넣기 메시지를 보냅니다.
그럼 메모에 있는 내용이 노트패드로 날라가서 붙죠....
그럼 참고하세요.
|