Windows IPC - Clipboard
Posted 2009/04/24 01:28|
|
|
댓글 하나가 운영자에겐 커다란 힘이 됩니다!
------------------ 클립보드로 메모리를 전달하는 code --------------
ctrl + c(복사) 기능
#include <stdio.h>
#include <windows.h>
void main()
{
char data[2048] = {0};
gets(data);
//----------------------------------------------------
// 1. 먼저 클립보드로 전달한 메모리를 생성한다
// - 이동가능한 핸들 기반의 메모리
// 핸들 기반 메모리는 GlobalAlloc으로만 만들 수 있다.
HANDLE hMem = GlobalAlloc(GMEM_MOVEABLE, 1024);
char *p = (char *)GlobalLock(hMem); // 핸들 기반 메모리를
// 포인터로 변경
strcpy(p, data);
GlobalUnlock(hMem);
//----------------------------------------------------
// 2. 이제 클립 보드를 열고 메모리를 전달한다.
if(OpenClipboard(0))
{
EmptyClipboard(); // 기존 data를 제거한다.
SetClipboardData(CF_TEXT, // data의 종류
hMem);
CloseClipboard();
}
}
// 프로그램을 실행하여 문장을 작성하고 메모장을 띄어서 붙여넣기를
// 하면 된다.
----------------------- 클립보드에서 data얻기 ------------------------
ctrl + v(붙여넣기) 기능
#include <stdio.h>
#include <windows.h>
void main()
{
// 클립 보드에서 data 얻기
char data[4096] = {0};
if(OpenClipboard(0)) // 0은 클립보드를 Open한 윈도우 핸들
{
HANDLE hMem = GetClipboardData(CF_TEXT);
char *p = (char*)GlobalLock(hMem);
strcpy(data, p); // 사용자 버퍼에 옮겨 담는다
GlobalUnlock(hMem);
CloseClipboard();
}
printf("클립보드에서 가져온 data : %s\n", data);
}
위의 정보가 도움이 되셨나요? 그렇다면 댓글 하나만 남겨주세요.
댓글 하나가 운영자에겐 커다란 힘이 됩니다!
- Filed under : 프로그래밍/MFC & Win32
- Comment Trackback

