Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Копирование файла в буфер обмена Добавлено: 06.06.05 12:36  

Автор вопроса:  Diz | Web-сайт: www.TS-Group.fatal.ru
Кто подскажет, как скопировать файлы в буфер обмена???

Допустим файлы:

D:\1.jpg
D:\2.jpg
D:\3.jpg

Ответить

  Ответы Всего ответов: 25  

Номер ответа: 1
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #1 Добавлено: 06.06.05 13:22
1. открываешь файл
2. читаешь его содержание
3. засовываешь его содержание в Clipboard.SetText (или как-то так)

Ответить

Номер ответа: 2
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #2 Добавлено: 06.06.05 23:29
";(или как-то так) "... :) точно что :)))

Вообще может имелось ввиду типа как в експлорере копировать нажимаем, а потом в другую папку и вставить...

Ответить

Номер ответа: 3
Автор ответа:
 Diz



Вопросов: 24
Ответов: 38
 Web-сайт: www.TS-Group.fatal.ru
 Профиль | | #3
Добавлено: 07.06.05 08:08
Ну так и имелось... у меня в ListBox'e пути,
D:\1.jpg
D:\2.jpg
D:\3.jpg

И по нажатию на кнопку, мне надо скопировать файлы, которые находятся по этим путям в буфер. Точно как в эксплорере...

Ответить

Номер ответа: 4
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #4 Добавлено: 07.06.05 12:52

Dim Pict As New StdPicture
Set Pict = LoadPicture(";D:\1.jpg";)
Clipboard.SetData Pict, 2

Ответить

Номер ответа: 5
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #5 Добавлено: 07.06.05 12:57
Да, забыл добавить:
1. Слово New в данном случае не нужно. В принципе, если ты не будешь дальше с этой картинкой работать - достаточно одной строки

Clipboard.SetData LoadPicture("C:\Program Files\Common Files\Microsoft Shared\Grphflt\MS.JPG";), 2

2. Буфер не поддерживает формат jpg, посему в данном случае картинка копируется в формате bmp (vbCFBitmap=2).

Ответить

Номер ответа: 6
Автор ответа:
 Diz



Вопросов: 24
Ответов: 38
 Web-сайт: www.TS-Group.fatal.ru
 Профиль | | #6
Добавлено: 07.06.05 13:48
Пишу:


Private Sub btnCopyFile_Click()
Dim I As Integer

  For I = 0 To FileList.ListCount - 1
    If FileList.Selected(I) Then
      Clipboard.SetData LoadPicture(txtPathIn.Text + FileList.List(I)), 2
    End If
  Next
End Sub


Код выполняется, но когда я в explorer'e щёлкаю правой кнопкой, то команда вставить недоступна...

Ответить

Номер ответа: 7
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #7 Добавлено: 07.06.05 14:39
Ну дык ты щелкни не в эксплорере, а где-нить в Paint'е. Результат вставки зависит от того, куда ды вставляешь. Это как тип вставляемых данных, так и сама возможность. И нет сысла копировать в буфер в цикле - данные переписывают друг друга.

Ответить

Номер ответа: 8
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #8
Добавлено: 07.06.05 20:25
Да, жалко у Clipboard'а нет таких возможностей, как у OLE Drag&;Drop :(

2 Diz:
А тебе нужно именно Copy & Paste, или перетаскивание тоже можно?

Ответить

Номер ответа: 9
Автор ответа:
 Diz



Вопросов: 24
Ответов: 38
 Web-сайт: www.TS-Group.fatal.ru
 Профиль | | #9
Добавлено: 08.06.05 09:31
To LamerOnLine
Про цикл я знаю... А про тип вставляемых данных, так это я уже понял... Но меня интересует именно как файл копировать, а не как рисунок (хотя пример тоже интересен и полезен!)

 Black Dragon

Что ты имеешь ввиду?

Ответить

Номер ответа: 10
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #10
Добавлено: 08.06.05 20:18
2 Diz:
Мне интересно: ты должен выбрать пункт List'а, нажать кнопку "Copy", переключиться в Explorer и нажать кнопку "Paste" или тебе можно взять этот пункт и перетащить в Explorer?

Ответить

Номер ответа: 11
Автор ответа:
 Diz



Вопросов: 24
Ответов: 38
 Web-сайт: www.TS-Group.fatal.ru
 Профиль | | #11
Добавлено: 09.06.05 07:46
Первый вариант...

В проге будет также кнопка и вставить... т.е. управление файлами из моей среды....

P.S. Также и вырезать пригодится :)

Ответить

Номер ответа: 12
Автор ответа:
 Sur



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #12
Добавлено: 09.06.05 12:45
Простите, не разбирался: API GetSystemMenu тут не в тему?

Ответить

Номер ответа: 13
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #13
Добавлено: 09.06.05 20:56
2 Sur: вообще, нет :)

Ответить

Номер ответа: 14
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #14 Добавлено: 10.06.05 14:02
Для файлов (если ты про список файлов) используй константу vbCFFiles = 15. Хотя не поможет, тут это долбаное OLE...

Ответить

Номер ответа: 15
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #15 Добавлено: 10.06.05 14:08
Кстати, монстры COM, поясните

Option Explicit
Dim a As DataObject

Private Sub Command1_Click()
MsgBox a.Files.Count
End Sub

Private Sub Form_Load()
List1.OLEDrag
End Sub

Private Sub List1_OLEStartDrag(Data As DataObject, AllowedEffects As Long)
Data.Files.Add "d:\1.tmp"
Set a = Data
End Sub

Код совершенно бессмысленный, но речь не про это. Почему в результате имею объект а, отладчик показывает что он и впрямь не nothing, но использование выдает Invalid Object Use. Насколько я знаю, покуда есть ссылка на объект - он выгружаться не должен. С этим, блин, OLE...

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам