Данные из буфера обмена невозможно вставить paint
Здравствуйте.
Столкнулся с проблемой: мне нужно скопировать изображение (снимок экрана) в буфер обмена. Из-за тех. ограничений я не могу использовать System.Windows.Forms.Clipboard. Вместо этого я использую функцию SetClipboardData из библиотеки user32.dll.
Текст вставляется в буфер без проблем, но картинки, которые функция отправляет в буфер (возвращает true, то есть ошибки нет) невозможно открыть в paint (он не видит, что в буфере есть картинка) ("Данные из буфера обмена невозможно вставить").
Судя по информации, которую я смог найти в интернете, проблема связана с тем, что формат CF_BITMAP не будет распознан как картинка (возможно это не так, но несколько тем на MSDN утверждают именно это). В качестве решения предлагается использовать CF_DIB. Но я не могу найти, как преобразовать bitmap в DIB. Обычный bitmap он не принимает в качестве аргумента. Мой код:
Problems with user32.dll
Помогите, пожалуйста. Мне нужно программно переключиться на открытое приложение и нажать на нем в.
Надстройка для user32.dll
Всем доброго времени суток. Меня тут ВНЕЗАПНО осенила идея, что пользоватьсы функциями из.
Оптимизация опрашивания нажатых клавиш (user32.dll)
Здравствуйте. Я написал программу, которая, по нажатию на определенные кнопки клавиатуры (даже если.
SendInput() (user32.dll) работает с разными приложениями по разному
В приложения: блокнот, калькулятор и тому подобное с помощью метода SendInput из user32.dll у меня.
Большинство функций S.W.F. работает только в редакторе, а после компиляции возвращают ошибки. Из-за этого почти все функции, которые можно легко сделать с помощью этой dll, приходится делать через PInvoke.
Так как использование этой библиотеки в Unity - редкость, комментариев по этой проблеме не много, и кажется, что некоторые функции всё же могут работать, но не все. Возможно проблема не только в S.W.F., но и в самой функции Clipboard.SetImage
(Например, System.Drawing работает без ошибок).
Edit:
Так же, строка
не вызывает ошибок.
Добавлено через 10 минут
Полный текст ошибки:
Пробовал разные способы (например, Image.FromHbitmap(bitmap.GetHbitmap())), которые смог найти. Везде: в редакторе работает, в сборке - нет.
в общем проблема ясна. файлы большого объема паинт не осиляет.
попробовал чертеж сохранить картинкой (даже не скан). размер 6.8 метров -
либо фотошоп осваивать либо сжимать файлы.
ПС: сжал до 2,5 мегов открылась паинтом, и склеилось.
Nikon
Активный участник
And626GE92
Участник
Спасибо, но это было бы слишком просто А надо регулярно и хочется все делать с минимум затрат по времени, ресурсам и ПО.
Не объема (что такое 1.7 мега? фии ), а разрешения, т.е. к-ва точек.
fizrefl
Активный участник
ну как бэ это естественно паинт только открывать или сохранять умеет в джипег. а работает он все равно с массивом пикселей, если говорить утрировано это бмп. 1.7 мега джипег это только хранение
And626GE92
Участник
ну как бэ это естественно паинт только открывать или сохранять умеет в джипег. а работает он все равно с массивом пикселей, если говорить утрировано это бмп. 1.7 мега джипег это только хранение
Вот я примерно так же логически рассуждал. Но bmp из этих jpg весят по 17 мег. И как эти два по 17 мег не умещаются в 8 гигах я ума не приложу.
Mazzay
Super Moderator
telesar
Активный участник
fizrefl
Активный участник
Вот я примерно так же логически рассуждал. Но bmp из этих jpg весят по 17 мег. И как эти два по 17 мег не умещаются в 8 гигах я ума не приложу.
легко. зависит от того как работает paint. в любом случае 5000х3500х24бита это минимум 52.5 мегабайта (вернее чуть меньше , ведь в 1мб=1024кб итд).
У меня кстати получается скопировать вставить, увеличить область в паинте и склеить правда не пробовал. (всего 1 гб эта операция занимает))))
Погуглил и что-то ничего конкретного не нашел.
Куда копать?
alalan77
Активный участник
Погуглил и что-то ничего конкретного не нашел.
Куда копать?
Anarhist
Активный участник
Немного добавлю. Лучше сначала открыть Paint, полотно немного "расширить", чтобы уместились оба рисунка. Потом вставить первый рисунок (при необходимости "расширить" полотно еще) и второй. При вставке второго, левую кнопку (или enter) не нажимать до установки нужного положения и масштаба (если нужно) и обрезать.
And626GE92
Участник
Я чему удивляюсь: файлы по 1.7 мега, а в диспетчере файлов пеинт занимает под гиг. Что за нафик?
Немного добавлю. Лучше сначала открыть Paint, полотно немного "расширить", чтобы уместились оба рисунка. Потом вставить первый рисунок (при необходимости "расширить" полотно еще) и второй. При вставке второго, левую кнопку (или enter) не нажимать до установки нужного положения и масштаба (если нужно) и обрезать.
alalan77
Активный участник
fizrefl
Активный участник
Mazzay
Super Moderator
alalan77
Активный участник
Mazzay
Super Moderator
alalan77
Активный участник
Mazzay
Super Moderator
fizrefl
Активный участник
Mazzay
Super Moderator
Да, по идее, нет. Чтобы на них ни было.
And626GE92, попробуй не всю картинку в буфер, а только её часть. Прокатит, если по частям?
fizrefl
Активный участник
я так понимаю что это экспорт из автокада с афигительным Dpi и глубиной цвета в 32 бита. иначе как объяснить гигабайты памяти.. просто экспортируй с меньшим dpi всеравно нигде не распечатаешь с таким качеством если только не в типографии
Mazzay
Super Moderator
alalan77
Активный участник
а почему нет? загрузить картинки. выровнять подвигать. и распечатать потом в пдф. а с пдф уж куда надо -хочешь в картинку, хочешь на плоттер.
ну или сжать рисунки? может сканер настроен на фотокачество. и правда там разрешение космическое. хотя файлы то как ТС говорит не сильно большие.
ПС: ТС, если актуально еще -скинь файлы. попробую у себя. не получится в паинте, попробую в акаде. Просто периодически тоже приходится картинки сшивать. Надо знать так сказать врага в лицо)))
And626GE92
Участник
Советуют воспользоваться другой программой, либо сохранить файл с атрибутами по умолчанию, что приводит к обрезанию файла.
а вообще странная ситуевина. даже на моем старом офисном компе, с не самыми сильными техпоказателями, такого не было.
глючило пдф файлы на работе. особенно когда редактировались или на печать отправлялись файлы с локальной сети. но с паинтом ни разу не было ничего.
Skype - Ошибка при чтении данных из буфера обмена
До запуска Скайпа все работает нормально. Но после его запуска, начинаются глюки. Версия Скайпа -.
Восстановление данных из буфера обмена
Здравствуйте. Слышал, что после перезагрузки нельзя восстановить данные из буфера обмена. Могу ли.
Ограничение на размер буфера при чтении из файла
Использую DOS-считывания из файла 3F. Есть ли какие-либо ограничения на количество считываемых.
попробуйте пообщаться с программкой clipbrd.exe из папки Windows/system32.
там можно и смотреть и чистить буфер .
Для того чтобы очистить буфер обмена необходимо запустить уже известный нам файл и нажать на крестик либо «Правка – Удалить».
Да..еще может память протестировать попробовать..
Спасибо, прикольная штука "clipbrd.exe" сколько лет на винде сижу не знал даже. А память проверю, завтра отпишусь.
Джуниор, признаюсь по секрету, только -чур никому, лады ? Если бы не Ваш вопрос, я бы тоже не узнал про этот встроенный утиль винды Ну ни к чему было
Решение
Сегодня наконец то повторилась проблема, которая описывается выше. Как и посоветовал Almiqui
запустил системную утилиту clipbrd.exe. Открывался долго долго и накнец руганулся что размер объекта буфера слишком велик(не знаю кто и что туда пытается копировать или это какой то сбой). Вобщем нажал очистить буфер. И все заработало без перезагрузки. Есть смутные подозрения что эту ситуацию с буфером вызывает VIRTUAL PC от Microsoft.
1. увеличить файл подкачки
2. сделать дефрагментацию HDD
3. прогнать память memtest'ом
4. почистить системный диск от мусора
5. временно удалить касперского
6. проверить систему на вирусяки утилиткой AVZ
Сегодня наконец то повторилась проблема, которая описывается выше. Как и посоветовал Almiqui
запустил системную утилиту clipbrd.exe. Открывался долго долго и накнец руганулся что размер объекта буфера слишком велик(не знаю кто и что туда пытается копировать или это какой то сбой). Вобщем нажал очистить буфер. И все заработало без перезагрузки. Есть смутные подозрения что эту ситуацию с буфером вызывает VIRTUAL PC от Microsoft.
Мне этот способ тоже помог . Правда там нет пункта очистить, я там выбрал в меню "Правка", а там "Удалить" - после этого буфер обменв приходит в чувство без перезагрузки компьютера
p.s. Но VIRTUAL PC тут и правда непричём.
Чтение текстовых данных из буфера обмена
нужно прочитать из буфера обмена текстовые данные - DocVar= "текстовое значение", чтобы затем.
Запись и чтение данных из буфера обмена
Как массиву присвоить значение из буфера обмена? К примеру у нас есть richTextBox1, и нам нужно.
Ошибка при чтении данных из файла
Имеем такую функцию чтения даных из фаила: void chtenie(char *imafaila) < FILE *sklad=.
Ошибка при чтении данных из файла
Вот задача но код не работает выдает ошибку Необходимо реализовать один из методов для решения.
Есть ли какой-нибудь способ заставить файлы изображений скопированные непосредственно в папках открываться из буфера обмена в просмотрщиках и редакторах?
Картинки из буфера обмена в power point вставляются маленькими прозрачными квадратами. Как это устранить?
Проблема появилась пару дней назад. Копирую картинку в интернете, пытаюсь вставить в power point с.
Использование буфера обмена
Вроде с виду все просто, создаю структуру Public Structure AAA Dim A As String .
Таблица из буфера обмена
Здравствуйте! Копирую вручную таблицу в буфер обмена. Каким образом корректно вставить эту.
Вывод Буфера обмена
Здравствуйте! ловлю нажатие комбинации ctrl + c и тут же распечатываю буфер обмена .
Решение
Таким образом изображение скопированное в буфер обмена вставляется в WordPad, OneNote, LibreOffice Writer, но не вставляется в Paint, PicPic, FastStone Image Viewer, GIMP, если оно скопировано выделением значка файла в Проводнике или на Рабочем столе и последующим нажатием Ctrl+С или выбором в контекстном меню "Копировать".
При копировании в буфер файла из папки, на самом деле копируется не изображение, а нечто типа ярлыка к файлу, и далеко не все графические редакторы умеют вставлять на канву такой объект.
Есть ли какой-нибудь способ заставить файлы изображений скопированные непосредственно в папках открываться из буфера обмена в просмотрщиках и редакторах?
quwy, спасибо за разъяснение, видимо я что-то напутал. Вводит в заблуждение то, что приложения предназначенные для работы с изображениями в первую очередь должны уметь открывать файлы скопированные непосредственно в папках, но, в отличии от них, программы предназначенные прежде всего для работы с текстом это делать могут.
У меня примерно такая же фигня. Техникой ниже я часто и успешно пользовался в MS WORD
открываю в Paint какую то многострочную или длинную формулу
а)сначала выделяю ее часть, копирую в буфер по меню Копировать или CTRL+C и вставляю в нужное место
документа *.doсx в Libre Office
1 раз вставка проходит. Потом выделяю в Paint 2 кусок ,пытаюсь скопировать в тот же документ
-вставляется вместо 2-го 1-й кусок. Буфер содержит правильный рис (проверял на вставке в сам Paint) но почему-то в Libre Office этот буфер не вставляется
Добавлено через 9 минут
Правда из этой ситуации я выкрутился пересохранив документ в формате odt - в нем буфер вставился нормально, а дальше т.к. надо печатать на принтере опять пересохранил в docx
Очистка буфера обмена
Здравствуйте. Скажите, пожалуйста, как осуществить очистку буфера в аксессе 2010? Может кто-нибудь.
Странности буфера обмена
Возникла задача бэкапить данные с буфера обмена, а потом возвращать как было. GetClipboardData.
Чтение буфера обмена
invoke GetClipboardData,1 Return value Type: HANDLE И что с ним делать? Как вывести текст в.
Очиста буфера обмена
Пожалуйста подскажите как очистить буфер обмена с помощью C++Builder?
Читайте также: