сделать скриншот и закатать его в файл(или переменную )

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

сделать скриншот и закатать его в файл(или переменную )

Сообщение Лёха_Virus » 17.04.2003 (Чт) 17:18

в общем как?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 17.04.2003 (Чт) 18:07

Смотри топик http://bbs.vbstreets.ru/viewtopic.php?t=744&start=0&postdays=0&postorder=asc&highlight=
:) Там я подробно расписал начало...

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 18.04.2003 (Пт) 17:11

так то оно так, ток там вродь скриншот прямо в пикчер закатывается, а какая переменная его держит?

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 18.04.2003 (Пт) 22:05

Есть такой тип переменых как stdPicture. Вот она то и держит в себе картинку.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 19.04.2003 (Сб) 19:45

Кстати, объявилась лакая лажа :oops: : картинка в pic1 (свойство Picture) равно 0, поэтому код типа
Код: Выделить всё
SavePicture pic1.Picture, "C:\123.bmp"
'или
pic2.Picture=pic1.Picture

не работает =)
Может, кто-нибудь знает, что делать?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 20.04.2003 (Вс) 12:15

Set pic1.Picture = pic2.Picture
Lasciate ogni speranza, voi ch'entrate.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 20.04.2003 (Вс) 20:15

Неет, так не проходит: у pic1 при сохранении десктопа параметр Picture не меняется, на нём "просто рисуется" соответствующий рисунок с другого устройства, это делается из библиотеки gdi32.dll, так что способ "от alibek" :lol: не работает. Необходимо что-то другое...

Gemini
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 390
Зарегистрирован: 24.07.2002 (Ср) 14:15
Откуда: Ozersk

Сообщение Gemini » 20.04.2003 (Вс) 20:36

По идее так должно получиться.
pic1.Picture = pic2.image
или
pic2.picture=pic2.image
set pic1.picture=pic2.picture

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 20.04.2003 (Вс) 21:00

Нет, так ТОЧНО не получится - метод SaveDC рисует на pic1 массив точек, вроде как методом PSet, только быстрее - не на VB, а извне... Необходим способ преобразовывать, скажем, линию, нарисованную на PictureBox через Line, в параметр Picture этого самого PictureBox... Но что-то мне кажется, что это неразрешимо...
Вот ещё! Если сначала сделать Alt+PrintScreen вручную, а потом написать
Код: Выделить всё
Private Sub pic1_Click()
pic1.Picture = Clipboard.GetData
End Sub

то получится то же самое... Картинка в pic1 тоже равна нулю :(
Ну, похоже, дальше я не знаю, как быть :*(

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 21.04.2003 (Пн) 17:10

хмммм... у меня вроже с принтскрином и клипбоардом работало...

ещё вопросец: получаю скриншот, катаю его в на пикчу, с пикчи пишу в переменную:
dim pic as stdPicture

set pic = picture1.picture

потом отправляю её по винсоку:
ws.senddata pic - всё работает

а вот при приёме какой то косяк:
dim pic as stdPicture

ws.getdata pic

я что-то мож пропустил? там параметры ещё у гетдаты...
как тут что?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 21.04.2003 (Пн) 17:22

сделать скриншот и закатать его в файл(или переменную )

- нажать PrintScreen, затем в Paint-е выполнить "Вставить"... если программно, PrintScreen - одна из API функций, "Вставить" можно используя OLE.

Лёха_Virus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 24.03.2003 (Пн) 17:13
Откуда: Анграск

Сообщение Лёха_Virus » 21.04.2003 (Пн) 17:30

Mikle писал(а):
сделать скриншот и закатать его в файл(или переменную )

- нажать PrintScreen, затем в Paint-е выполнить "Вставить"... если программно, PrintScreen - одна из API функций, "Вставить" можно используя OLE.


спасибо, но эта проблема уже решена :) см выше. :)
теперь дело за передачей данных по винсоку

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.04.2003 (Чт) 10:38

Через Winsock передаются данные в формате String или Variant, так что сначала переменную изображения нужно сконвертировать в подходящий формат...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Mail.ru [бот] и гости: 68

    TopList