GetClipboardData

王朝百科·作者佚名  2010-07-22  
宽屏版  字体: |||超大  

获取剪贴板内容

用OpenClipboard打开剪贴板

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

", 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("

");

}

printf("%02x ",(UCHAR)lpStr[dw]);

}

printf("

");

GlobalUnlock(hMem);

CloseClipboard();

return 0;

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有