Как положить картинку в буфер обмена

Aleksandr

Client
Регистрация
04.01.2014
Сообщения
206
Благодарностей
113
Баллы
43
Привет, помогите плиз. Не получается положить картинку в буфер обмена.
Делал вот так:
Код:
System.Windows.Clipboard.SetImage(@"D:\Снимок0.jpg");
ошибки
Код:
"The best overloaded method match for 'System.Windows.Clipboard.SetImage(System.Windows.Media.Imaging.BitmapSource)' has some invalid arguments". [Строка: 1; Cтолбец: 1]
и
Код:
"Argument 1: cannot convert from 'string' to 'System.Windows.Media.Imaging.BitmapSource'". [Строка: 1; Cтолбец: 35]
 

KirillOFF

Client
Регистрация
18.12.2010
Сообщения
1 127
Благодарностей
516
Баллы
113
Как-нибудь так
Код:
Bitmap img = new Bitmap(@"D:\Снимок0.jpg");
//Или так
//Bitmap img = (Bitmap) Image.FromFile(@"D:\Снимок0.jpg", true);

System.Windows.Clipboard.SetImage(img);
 
  • Спасибо
Реакции: Aleksandr

Aleksandr

Client
Регистрация
04.01.2014
Сообщения
206
Благодарностей
113
Баллы
43
Если использую вариант
Код:
Bitmap img = new Bitmap(@"D:\Снимок0.jpg");
System.Windows.Clipboard.SetImage(img);
то
Код:
"The best overloaded method match for 'System.Windows.Clipboard.SetImage(System.Windows.Media.Imaging.BitmapSource)' has some invalid arguments". [Строка: 5; Cтолбец: 1]
и
Код:
"The type 'System.Windows.Freezable' is defined in an assembly that is not referenced. You must add a reference to assembly 'WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.". [Строка: 5; Cтолбец: 1]
При варианте
Код:
Bitmap img = (Bitmap) Image.FromFile(@"D:\Снимок0.jpg", true);
System.Windows.Clipboard.SetImage(img);
Код:
The type 'System.Windows.Freezable' is defined in an assembly that is not referenced. You must add a reference to assembly 'WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.". [Строка: 4; Cтолбец: 1]
и
Код:
"Argument 1: cannot convert from 'System.Drawing.Bitmap' to 'System.Windows.Media.Imaging.BitmapSource'". [Строка: 4; Cтолбец: 35]
Вот сборки которые использую
upload_2014-12-15_12-33-50.png
 

neoarey

Новичок
Регистрация
16.02.2017
Сообщения
28
Благодарностей
5
Баллы
3
Получилось решить задачу?

У меня вот такая ошибка:
Компиляция кода Ошибка в действии "CS0234" "The type or namespace name 'Clipboard' does not exist in the namespace 'System.Windows' (are you missing an assembly reference?)". [Строка: 1; Cтолбец: 16]
Хотя библиотеки все на месте вроде:
 

neoarey

Новичок
Регистрация
16.02.2017
Сообщения
28
Благодарностей
5
Баллы
3
Мне подсказали вот это решение, которое работает:

Код:
Image img = Image.FromFile(@"C:\Documents and Settings\Administrator\Desktop\yandex\pic\A168E4K.jpg");
lock (SyncObjects.InputSyncer) {
    System.Windows.Forms.Clipboard.SetImage(img);
    instance.ActiveTab.KeyEvent("v", "press", "ctrl");
}
img.Dispose();
Может кому пригодится...
 

nikolius

Новичок
Регистрация
02.06.2016
Сообщения
14
Благодарностей
6
Баллы
3
Мне подсказали вот это решение, которое работает:

Код:
Image img = Image.FromFile(@"C:\Documents and Settings\Administrator\Desktop\yandex\pic\A168E4K.jpg");
lock (SyncObjects.InputSyncer) {
    System.Windows.Forms.Clipboard.SetImage(img);
    instance.ActiveTab.KeyEvent("v", "press", "ctrl");
}
img.Dispose();
Может кому пригодится...
Спасибо!!!
Очень помогло. я использовал
Код:
System.Windows.Forms.Clipboard.SetImage(Image.FromFile(project.Directory + @"\newImage.jpg"));
instance.ActiveTab.KeyEvent("v","press","ctrl");
И топом он не давал удалить данную картинку, а как буфер освободить потом я хз.
С твои кодом все работает !!!!!
 
  • Спасибо
Реакции: djaga

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)