Screenshot

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
--=GAMER=--
Фиолетовый бот
Фиолетовый бот
Аватара пользователя
 
Сообщения: 810
Зарегистрирован: 22.03.2004 (Пн) 11:29
Откуда: Владивосток

Screenshot

Сообщение --=GAMER=-- » 21.02.2005 (Пн) 9:02

Как снять скриншот с экрана и записать его в bmp, jpg или gif файл?
Пожалуйста с примером.
Спасибо.
В темноте слепец — самый надежный проводник. В эпоху безумия пусть тебя ведет сумасшедший.

rRenderer Engine
VB Wiki

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 21.02.2005 (Пн) 10:03

Код: Выделить всё
Option Explicit

Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Private Const SRCCOPY = &HCC0020

Private Sub Command1_Click()
    Dim hDesk, hDeskDC
 
    hDesk = GetDesktopWindow()
    hDeskDC = GetDC(hDesk)
    BitBlt picShot.hDC, 0, 0, Width, Height, hDeskDC, 0, 0, SRCCOPY

    SavePicture picShot.Image, "C:\PicOut.bmp"

End Sub


Единственное что, надо компонент Picture (picShot) был "застянут" на весь экран :(

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 21.02.2005 (Пн) 11:57

Sirik писал(а):
Код: Выделить всё
Option Explicit

Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Private Const SRCCOPY = &HCC0020

Private Sub Command1_Click()
    Dim hDesk, hDeskDC
 
    hDesk = GetDesktopWindow()
    hDeskDC = GetDC(hDesk)
    BitBlt picShot.hDC, 0, 0, Width, Height, hDeskDC, 0, 0, SRCCOPY

    SavePicture picShot.Image, "C:\PicOut.bmp"

End Sub


Единственное что, надо компонент Picture (picShot) был "застянут" на весь экран :(
Не обязательно, можно у pcShot AutoRedraw=true поставить, и тогда будет не обязательно растягивать его!:wink:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 21.02.2005 (Пн) 12:01

Ой сори! ошибся :oops: Если .Image -то надо, а если .Picture то не надо :oops:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 21.02.2005 (Пн) 12:17

Я делал так: создавал дочернюю форму, растягивал на весь экран (picture естественно тоже), и прятал.
потом вызывал свой код

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 21.02.2005 (Пн) 12:34

У меня есть другой код, но он очень большой!
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 12.03.2007 (Пн) 9:50

я сделал скриншот-шпиён.
спасибо
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


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

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

Сейчас этот форум просматривают: YaCy [Bot] и гости: 100

    TopList