как сделать screenshot и сохранить в файл?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Skorpion84
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 05.02.2006 (Вс) 16:46

как сделать screenshot и сохранить в файл?

Сообщение Skorpion84 » 05.02.2006 (Вс) 16:51

Нужно сохранить скриншот в файл на _VB.NET_

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.02.2006 (Вс) 17:20

А мы-то думали на асме, раздел-то про асм, хорошо, что пояснил...

Собственно, существенно ничё не изменилось. Так же, как в VB6. Потому что у graphics нет метода копирования области. BitBlt (в поиск) в bitmap и .Save("", Imaging.ImageFormat.Gif).
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Skorpion84
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 05.02.2006 (Вс) 16:46

Сообщение Skorpion84 » 05.02.2006 (Вс) 19:26

Так в этом-то и проблема. Не знаю я как скрестить BitBit и Net (в частности Bitmap)

Skorpion84
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 05.02.2006 (Вс) 16:46

Сообщение Skorpion84 » 05.02.2006 (Вс) 19:30

GSerg писал(а):А мы-то думали на асме, раздел-то про асм, хорошо, что пояснил...

Извиняюсь, но это не всегда для всех очевидно.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.02.2006 (Пн) 5:00

Не знаю я как скрестить BitBit и Net (в частности Bitmap)

Дык поискать и подумать. Второе главнее.

Код: Выделить всё
  Private Declare Function BitBlt Lib "gdi32.dll" (ByVal hDestDC As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As IntPtr, ByVal xSrc As Integer, ByVal ySrc As Integer, ByVal dwRop As Integer) As Integer
  Private Declare Function CreateCompatibleBitmap Lib "gdi32.dll" (ByVal hdc As IntPtr, ByVal nWidth As Integer, ByVal nHeight As Integer) As IntPtr
  Private Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As IntPtr) As Integer
  Private Declare Function CreateCompatibleDC Lib "gdi32.dll" (ByVal hdc As IntPtr) As IntPtr
  Private Declare Function DeleteDC Lib "gdi32.dll" (ByVal hdc As IntPtr) As Integer
  Private Declare Function SelectObject Lib "gdi32.dll" (ByVal hdc As IntPtr, ByVal hObject As IntPtr) As IntPtr
  Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As IntPtr) As IntPtr
  Private Declare Function ReleaseDC Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal hdc As IntPtr) As IntPtr

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim hb, hd, hs As IntPtr

    hs = GetDC(IntPtr.Zero)

    hd = CreateCompatibleDC(hs)
    hb = CreateCompatibleBitmap(hs, 1024, 768)
    DeleteObject(SelectObject(hd, hb))

    BitBlt(hd, 0, 0, 1024, 768, hs, 0, 0, &HCC0020)

    ReleaseDC(IntPtr.Zero, hs)

    Dim b As Bitmap = Bitmap.FromHbitmap(hb)
    b.Save("c:\1.gif", Drawing.Imaging.ImageFormat.Gif)
    b.Dispose()

    DeleteDC(hd)
    DeleteObject(hb)
  End Sub



Извиняюсь, но это не всегда для всех очевидно.

Если из названия раздела "Visual Basic .NET" неочевидно, про какой язык здесь обсуждение, то это всецело характеризует читающего...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic .NET

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

    TopList