Getting clipboard data in raw format in C ++

I played with the window buffer. I noticed that you can only view the clipboard if you supply the format. I have seen programs that can download the original contents of the clipboard. Take a look at http://www.autohotkey.com/docs/misc/Clipboard.htm#ClipboardAll for an example of what I mean.

Is there a way to do something like this, I want to backup the clipboard, manipulate it, and then restore it when my program is executed.

I am looking for a solution for net.net if this is really a thing

EDIT:

I have tried this so far:

struct clipData {
 vector<void*> data;
 vector<int> size;
};

struct clipData saveClipboard(int &size) {
 clipData ret;
 UINT currentFormat = 0;
 HGLOBAL hData;
 if (OpenClipboard(0)) {

  while(currentFormat = EnumClipboardFormats(currentFormat)) {
   hData = GetClipboardData(currentFormat);
   int currentClipboardFormatSize = GlobalSize(hData); //Only works with text formats. Help!
   char *savedClipboardData = new char[currentClipboardFormatSize];
   char *ptrToData = (char*) GlobalLock(hData);
   memcpy(savedClipboardData, ptrToData, currentClipboardFormatSize);
   ret.data.push_back(savedClipboardData);
   ret.size.push_back(currentClipboardFormatSize);
   }
  CloseClipboard();
 }
 return ret;
}

But the problem is not to say how big the clipboard is in each format

+3
source share
2

"" . , , . .

, autohotkey, , , .

+4

MSDN , , API .

+2

Source: https://habr.com/ru/post/1784328/


All Articles