将变量内容复制到C中的剪贴板?

时间:2014-09-03 19:53:00

标签: c windows

快速提问:在此示例代码中:

printf ("\nType in 1st address: ");
scanf ("%x", &address1);
address1 = (address1 - number1) * 2;
printf ("\nResult = %08X\n\n", address1);

如何将var address1 的内容复制到剪贴板上?

1 个答案:

答案 0 :(得分:0)

对于未来的读者,我决定在Windows中展示如何执行此操作的示例。

首先使用sprintf http://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm格式化数据,如果它的格式不正确(const char *)。

然后使用以下Windows API设置剪贴板数据。

  • OpenClipBoard
  • EmptyClipboard
  • SetClipboardData
  • CloseClipboard
  • GetClipboardData

以下是这些API的非常基本的示例用法,没有任何返回/错误值检查。

const char *Str = "Hello world";
const size_t strLen = lstrlenA(Str) + 1;
HGLOBAL hGlobal =  GlobalAlloc(GMEM_MOVEABLE, strLen); //Memory must be moveable!
memcpy(GlobalLock(hGlobal), Str, strLen);
GlobalUnlock(hGlobal);
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_TEXT, hGlobal);
CloseClipboard();