Использование функции ClipboardSetData для установки содержимого буфера обмена удаленного компьютера. - PullRequest
2 голосов
/ 17 мая 2019

Мне было поручено отправлять текстовые данные буфера обмена в буфер обмена удаленного компьютера, подключенного к WfreeRDP, из веб-приложения, и у меня возникают проблемы, зная, где искать.

WFreeRDP имеет TestClipboardFormats.c, который выглядит как то, что мне нужно, и имеет SetClipboardData и GetClipboardData, с которыми мне удалось работать (по крайней мере, согласно выводу консоли Debug)

BOOL bSuccess;
UINT32 SrcSize;
UINT32 DstSize;

const char* pSrcData = commandArgs.c_str();

char* pDstData;

textHtmlStringFormatId = ClipboardRegisterFormat(clipboard, "CF_TEXT");
utf8StringFormatId = ClipboardRegisterFormat(clipboard, "UTF8_STRING");

SrcSize = (UINT32)(strlen(pSrcData) + 1);

bSuccess = ClipboardSetData(clipboard, textHtmlStringFormatId, pSrcData, SrcSize);

fprintf(stderr, "ClipboardSetData: %d\n", bSuccess);

DstSize = 0;

pDstData = (char*)ClipboardGetData(clipboard, textHtmlStringFormatId, &DstSize);

fprintf(stderr, "ClipboardGetData: %s\n", pDstData);

free(pDstData);

Я надеялся, что буфер обмена удаленного компьютера будет заполнен данными, которые я отправил, так как его можно успешно извлечь с помощью GetClipboardData, но щелчок правой кнопкой мыши на удаленном компьютере не дает результатов.

Я использую правильный метод? Или может использовать его неправильно?

...