// // txt2clip -- copy text to clipboard. // // 22-Mar-2010 tvb // #include #include #include #pragma comment(lib, "user32.lib") void main (int argc, char* argv[]) { HGLOBAL hMem; LPTSTR ptxt; BOOL ok; size_t size; char str[4000]; if (argc < 2) { fprintf(stderr, "Usage: %s [text]\n", argv[0]); exit(1); } for (str[0] = '\0'; argc > 1; argc -= 1, argv += 1) { strcat(str, argv[1]); if (argc > 2) { strcat(str, " "); } } ok = OpenClipboard(NULL); if (!ok) { fprintf(stderr, "OpenClipboard failed\n"); exit(1); } ok = EmptyClipboard(); if (!ok) { fprintf(stderr, "EmptyClipboard failed\n"); exit(1); } size = strlen(str) + 1; hMem = GlobalAlloc(GMEM_SHARE | GMEM_MOVEABLE, size); ptxt = (LPTSTR)GlobalLock(hMem); strcpy(ptxt, str); GlobalUnlock(hMem); ok = (BOOL)SetClipboardData(CF_TEXT, hMem); if (!ok) { fprintf(stderr, "SetClipboardData failed\n"); exit(1); } CloseClipboard(); if (str[0] == '\0') { fprintf(stderr, "clipboard cleared.\n"); } else { fprintf(stderr, "\"%s\" copied to clipboard.\n", str); } }