複製鏈接
請複製以下鏈接發送給好友

GetClipboardData

鎖定
GetClipboardData是一個函數,用來打開剪貼板並獲取剪貼板內容。
外文名
GetClipboardData
性    質
一個函數
用    途
打開剪貼板並獲取剪貼板內容
GlobalLock
鎖定剪貼板那內存塊
EnumClipboardFormats加while來循環出一個可用的剪貼板格式
使用GetClipboardData獲得剪貼板的內存塊首地址
用GlobalLock鎖定剪貼板那內存塊
GlobalSize可以用來獲取該內存塊的大小
使用GlobalUnlock解除鎖定
CloseClipboard關閉剪貼板
示例代碼:
#include <windows.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
if (!OpenClipboard(NULL))
{
return 0;
}
HGLOBAL hMem = NULL;
LPCTSTR lpStr = NULL;
UINT uFormat = NULL;
while (TRUE)
{
uFormat = EnumClipboardFormats(uFormat);
if (uFormat > 0)
{
hMem = GetClipboardData(uFormat);
lpStr = (LPCTSTR)::GlobalLock(hMem);
if (lpStr != NULL)
{
printf("The address is 0x%0x\n", hMem);
break;
}
}
else
{
return 0;
}
}
DWORD dwSize = GlobalSize(hMem);
printf("The size of clipboard : %ld",dwSize);
for (DWORD dw = 0 ;dw<dwSize;dw++)
{
if (dw%21 == 0)
{
printf("\n");
}
printf("%02x ",(UCHAR)lpStr[dw]);
}
printf("\n");
GlobalUnlock(hMem);
CloseClipboard();
return 0;
}