#include <iostream>
#include <string>
#include <windows.h>
bool SetClipboard( const std::string &data ) {
auto size = data.size() + 1 ;
auto pGlobal = GlobalAlloc( GMEM_MOVEABLE, size);
if (!pGlobal) {
return false;
}
OpenClipboard(0);
EmptyClipboard();
auto pLock = GlobalLock(pGlobal);
if (!pLock) {
CloseClipboard();
return false;
}
CopyMemory( pLock, data.c_str(), size );
GlobalUnlock( pGlobal);
SetClipboardData( CF_TEXT, pGlobal);
CloseClipboard();
GlobalFree(pGlobal);
return true;
}
int main() {
std::string input;
std::cout << "input: ";
getline(std::cin, input);
SetClipboard(input);
return 0;
}