如何使用 C 和 WinAPI 将包含特殊字符的文本复制到剪贴板?
How to copy text including special characters to clipboard using C and WinAPI?
我正在尝试制作将文本复制到剪贴板的小 c 程序。我在这个网站上发现了这个问题。程序代码:
const char* output = "Test";
const size_t len = strlen(output) + 1;
HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, len);
memcpy(GlobalLock(hMem), output, len);
GlobalUnlock(hMem);
OpenClipboard(0);
EmptyClipboard();
SetClipboardData(CF_TEXT, hMem);
CloseClipboard();
此程序会将文本复制到剪贴板。但我需要它来复制 2 行。所以我试试这个:
const char* output = "Test1\nTest2";
但它被复制为文字。我该如何修复此代码,结果将是:
Test1
Test2
而不是:
Test1\nTest2
Standard Clipboard Formats 的页面是关于 CF_TEXT
的:
Text format. Each line ends with a carriage return/linefeed (CR-LF)
combination. A null character signals the end of the data. Use this
format for ANSI text.
所以你可能需要:
const char* output = "Test1\r\nTest2";
^^
我正在尝试制作将文本复制到剪贴板的小 c 程序。我在这个网站上发现了这个问题。程序代码:
const char* output = "Test";
const size_t len = strlen(output) + 1;
HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, len);
memcpy(GlobalLock(hMem), output, len);
GlobalUnlock(hMem);
OpenClipboard(0);
EmptyClipboard();
SetClipboardData(CF_TEXT, hMem);
CloseClipboard();
此程序会将文本复制到剪贴板。但我需要它来复制 2 行。所以我试试这个:
const char* output = "Test1\nTest2";
但它被复制为文字。我该如何修复此代码,结果将是:
Test1
Test2
而不是:
Test1\nTest2
Standard Clipboard Formats 的页面是关于 CF_TEXT
的:
Text format. Each line ends with a carriage return/linefeed (CR-LF) combination. A null character signals the end of the data. Use this format for ANSI text.
所以你可能需要:
const char* output = "Test1\r\nTest2";
^^