// 클립보드에 문자열을 넣는다.
BOOL ClipboardCopy( char * CopyData )
{
HGLOBAL hMem;
TCHAR * pszbuffer = NULL;
// 클립보드를 오픈한다.
if ( ::OpenClipboard( NULL ) == FALSE )
{
TRACE(_T("Open the Clipboard is False!!"));
return FALSE;
}
int nLen = _tcslen( CopyData ) + 2 ;
// 메모리 할당.
hMem = ::GlobalAlloc( GMEM_MOVEABLE | GMEM_ZEROINIT, nLen );
if ( hMem == NULL )
{
TRACE(_T("Mem Alloc is Faild!!"));
::CloseClipboard();
return FALSE;
}
// 메모리 복사
pszbuffer = (TCHAR *)::GlobalLock( hMem );
// _stprintf_s( pszbuffer, nLen, _T("%s"), CopyData );
_stprintf( pszbuffer, _T("%s"), CopyData);
::EmptyClipboard();
::SetClipboardData( CF_TEXT, hMem );
::GlobalUnlock( hMem );
::CloseClipboard();
return TRUE;
}
// 클립보드에 문자를 다른데 붙여넣기 한다.
BOOL ClipboardPaste( char * PasteData )
{
if ( _tcslen( PasteData ) > 0 )
{
if ( ClipboardCopy( PasteData ))
{
// Ctrl + V 키를 눌러준다.
keybd_event( VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
keybd_event( 0x56, MapVirtualKey(0x56, 0), 0, 0);
Sleep(100);
keybd_event( 0x56, MapVirtualKey( 0x56, 0), KEYEVENTF_KEYUP, 0);
keybd_event( VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0);
Sleep(100);
keybd_event( VK_TAB, MapVirtualKey( VK_TAB, 0), 0, 0 );
Sleep(50);
keybd_event( VK_TAB, MapVirtualKey( VK_TAB, 0), KEYEVENTF_KEYUP, 0 );
}
else return FALSE;
}
else return FALSE;
return TRUE;
}
// 클립보드에 문자를 가져온다.
BOOL CkmS::ClipboardData(TCHAR *pData)
{
if ( ::IsClipboardFormatAvailable(CF_TEXT)) // 믄자형이 클립보드에 있으면
{
if ( ::OpenClipboard(NULL))
{
HANDLE hData = ::GetClipboardData(CF_TEXT); // 데이터 가져오기
LPCTSTR _data = (LPCTSTR)::GlobalLock( hData );
if ( !hData )
{
::GlobalUnlock( hData );
::CloseClipboard();
return FALSE;
}
_tcscpy( pData, _data);
::EmptyClipboard();
::CloseClipboard();
return TRUE;
}
}
return FALSE;
}
'개발언어 > c++' 카테고리의 다른 글
Smooth color transition algorithm (0) | 2016.07.16 |
---|---|
메모리 사용량 알기 (0) | 2016.07.16 |
[VC++] 캡쳐 이미지를 엑셀 파일로 저장하기 (0) | 2016.07.16 |
투명리스트 컨트롤 구현(TransListBox) (0) | 2016.07.16 |
ColorListCtrl(리스트 컨트롤색상) 소스 (0) | 2016.07.16 |