Страница: 1 | 2 |
Вопрос: Копирование файла в буфер обмена
Добавлено: 06.06.05 12:36
Автор вопроса: Diz | Web-сайт:
Кто подскажет, как скопировать файлы в буфер обмена???
Допустим файлы:
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-сайт:
Профиль | | #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(":\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-сайт:
Профиль | | #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&rop
2 Diz:
А тебе нужно именно Copy & Paste, или перетаскивание тоже можно?
Номер ответа: 9
Автор ответа:
Diz
Вопросов: 24
Ответов: 38
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #11
Добавлено: 09.06.05 07:46
Первый вариант...
В проге будет также кнопка и вставить... т.е. управление файлами из моей среды....
P.S. Также и вырезать пригодится
Номер ответа: 12
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #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...