PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Clipboard


Bluesteel
11.03.2009, 11:39
Text in die Windows-Zwischenablage schreiben und daraus lesen

Ist ne ganz praktische sache denke ich xD

so hier nun der code

/*

Read/write text from/to the Windows clipboard

Clear clipboard with EmptyClipboard() function



Dependencies: CString




*/



CString GetClipboardText()

{

HANDLE string;

char ret_text[4096];



// open clipboard for task

if (OpenClipboard(0))

{

// try reading if successful

if ((string = GetClipboardData(CF_TEXT))!=0)

{

strncpy(ret_text, (char *) string, 4096);

ret_text[4095] = '\0';

CloseClipboard();

return ret_text ;

}

else

{

CloseClipboard();

return "";

}

}

return "";

}



bool CopyToClipboard(CString strText)

{

bool bRet = true;



if (strText.GetLength() > 0)

{

HGLOBAL hGlobalMemory;

LPVOID lpGlobalMemory;



// allocate global memory

hGlobalMemory = GlobalAlloc(GHND, strText.GetLength() + 1);

if (hGlobalMemory)

{

// lock block to get a pointer to it

lpGlobalMemory = GlobalLock(hGlobalMemory);

// copy string to the block

lpGlobalMemory = lstrcpy((char *) lpGlobalMemory, strText.GetBuffer(strText.GetLength()));

// free memory

GlobalUnlock(hGlobalMemory);



// open clipboard for task

if (OpenClipboard(0))

{

EmptyClipboard();

// try writing if successful

if (!SetClipboardData(CF_TEXT, hGlobalMemory))

{

// error writing to clipboard

bRet = false;

}

CloseClipboard();

}

}

}

return bRet;

}