Tag: 剪贴板

从剪贴板获取CF_DIBV5的位图

我正试图从剪贴板中获取位图数据。 我可以成功获取CF_DIBV5对象的头信息: BOOLEAN exists = IsClipboardFormatAvailable(CF_DIBV5) && OpenClipboard(session->windowHandle); if (exists) { HGLOBAL clipboard = GetClipboardData(CF_DIBV5); exists = clipboard != NULL; if (exists) { LPTSTR lptstr = GlobalLock(clipboard); exists = lptstr != NULL; if (exists) { BITMAPV5HEADER * header = clipboard; //now need the HBITMAP! } } } //… 我可以从标题中成功记录信息。 现在我想要实际的HBITMAP所以我可以将它传递给GetDIBits 。 文档说CF_DIBV5是一个BITMAPV5HEADER “后跟位图颜色空间信息和位图位”。 最后一部分让我感到讽刺,因为它用简单的英语。 我假设得到位图位,我需要将标题的大小和“颜色空间信息”添加到标题指针。 […]

剪贴板查看器不会获得粘贴通知

我需要在某个程序的窗口中阻止从剪贴板粘贴。 我在程序中设置了一个剪贴板查看器,如下所示: HWND hwndNextViewer = 0; LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: { hwndNextViewer = SetClipboardViewer(hWnd); break; } default: return DefWindowProcW(hWnd, message, wParam, lParam); } case WM_DRAWCLIPBOARD: { if(GetForegroundWindow() == hWndTarget){ OpenClipboard(hWndTarget); EmptyClipboard(); CloseClipboard(); } SendMessage(hwndNextViewer, message, wParam, lParam); break; } case WM_CHANGECBCHAIN:{ if ((HWND)wParam […]

Gtk Ckipboard:使用自定义URI方案粘贴源文件

我正在尝试编写一个将一些文件放在Gtk剪贴板上的GTK / C应用程序,因此Nautilus的用户可以粘贴它们。 在stackoverflow上有一个很好的Gtk剪贴板本地文件复制和粘贴示例 。 不幸的是,我需要粘贴的文件不在本地磁盘上,并且无法通过标准的GVFS URI方案访问,例如file://只有我的应用程序可以在设置TCP连接,validation和打开额外通道后访问这些源文件。 如何在Gtk剪贴板上使用这些应用程序管理的远程文件来粘贴Nautilus? 在未来,对于Dolphin / KDE呢? 在谷歌搜索后,我得出了以下想法:我需要开发一个新的gvfs URI方案处理程序(即:my-app://)。 但是很难找到示例或文档。 这是唯一的方法吗? 并且,我的应用程序可以将自己注册为临时GVFS URI方案处理程序而无需更改任何外部系统配置文件吗? 怎么样 ?

操作系统独立剪贴板复制/粘贴C中的文本

我正在开发一个应该在Windows和Linux上工作的项目(还有一个非官方的Mac端口),可以模拟真正的色彩系统控制台。 我的问题是,最近出现了对文本字段支持的请求(是的,基于控制台),添加将文本复制到剪贴板并从中粘贴的可能性会很酷。 有没有办法实现这一目标: 用C语言(不是C ++)完成, 在Windows和Linux中工作(如果没有与平台无关的代码,预处理器宏是一个选项), 不需要额外的库链接到? 在此先感谢您的帮助。