Windows剪贴板读写
void PushTextToClipboard(LPCSTR lpText)
{
if (::OpenClipboard(NULL) == TRUE)//!< 打开剪切板
{
::EmptyClipboard();//!< 置空剪切板
HGLOBAL hClipboardData = ::GlobalAlloc(GMEM_MOVEABLE, (lstrlenA(lpText) + 1) * sizeof(CHAR));//!< 申请内存
CHAR* pA = (CHAR*)::GlobalLock(hClipboardData);//!< 锁定内存
::lstrcpyA(pA, lpText);//!< 复制文本
::GlobalUnlock(hClipboardData);//!< 解锁内存
::SetClipboardData(CF_TEXT, hClipboardData);//!< 设置剪切板内容
::CloseClipboard();//!< 关闭剪切板
}
::OpenClipboard(hWnd);
::EmptyClipboard();
if (::IsClipboardFormatAvailable(CF_TEXT))
{
HANDLE hClipboardData = ::GetClipboardData(CF_TEXT);//获取剪切板数据
CHAR* pA = (CHAR*)::GlobalLock(hClipboardData);
::GlobalUnlock(hClipboardData);
::CloseClipboard();
}
}