| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Робота с буффером обмена |
| Автор: Sergio 9.10.2008, 22:24 |
| Всем привет. Как достать с буфера обмена скопированые файлы? Можно примерчик или линку Спасибо. |
| Автор: azesmcar 10.10.2008, 07:04 |
| посмотри функции OpenClipboard GetClipboardData CloseClipboard остальное есть в примерах в MSDN |
| Автор: Sergio 10.10.2008, 14:49 |
| azesmcar, смотрел. Какой парамет использовать при GetClipboardData() ? |
| Автор: Earnest 10.10.2008, 18:15 |
| Тот, который был использован при SetClipboardData. Ты должен знать, чтО пытаешься извлечь. И сначала надо спросить, есть ли там оно. |
| Автор: Sergio 10.10.2008, 19:21 |
| Earnest, а есть функция которая вытянет даный тип? На подобии может GetCurrentClipboardType() |
| Автор: Earnest 11.10.2008, 10:04 |
| Так именно это и делает GetClipboardData - достает данные запрашиваемого типа. А IsClipboardFormatAvailable скажет, есть ли там нужные данные. |
| Автор: Sergio 11.10.2008, 12:48 | ||
| Earnest, еще вопрос: когда я выделяю файлы и используюю контрол + С, то какие даные попадают в буффер обмена? Вот что написал:
Вытягивает текст з активного окна. Но не вытягивает файлы (пути) которые были скопированы. В чём проблема? Я думаю тип не подходящий. |
| Автор: Earnest 11.10.2008, 14:14 |
| А с какой радости он должен пути запоминать? Запоминается действительно текст из окна. А пути хранятся во внутренних данных, до которых ты вряд ли сумеешь добраться. И тип тут не причем - телепатов нет не только среди людей, но и среди программ. Если ты про окно эксплорера, то попробуй прочитать путь из поля-редактора вверху окна. Однако не факт, что он там есть... Наверняка можно добраться через интерфейс эксплорера... но как - без понятия. |
| Автор: 586 11.10.2008, 18:52 |
| Sergio, для HWND не нужно вызывать CloseHandle. |
| Автор: Sergio 12.10.2008, 14:15 | ||||
| Нашёл ответ на мсдн но он написан не на С/С++. https://forums.microsoft.com/Forums/ShowPost.aspx?PostID=1189429&SiteID=1 Поэтому постарался переписать. Вроде всё правильно но имя в консоль непишется
Вот что получилось:
|