Gå til innhold

Anbefalte innlegg

Hvordan kan man ta et skjermskudd (screenshot) i VB? Jeg har lett på planetsourcecode, freevbcode og vbaccelerator, men alle jeg fant er enten ute av stand til å gjøre annet enn å henge seg opp, eller så utnytter de bare print screen-knappen, slik at andre program (frks PrinstScreen 2000) som er koblet til denne blir aktivert i stedet.

 

Det jeg tregnger er enkelt (?) og greit et program som på kommando legger et skjermskudd i en picture/image-boks.

 

Takk

Lenke til kommentar
Videoannonse
Annonse

Det enkleste er nok å benytte BitBlt således:

 

' Nødvendige API-kall

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 Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function GetDesktopWindow Lib "user32" () As Long

 

Public Sub Screenshot(PictureBox As PictureBox)

 

    ' Dersom disse egenskapene ikke kobles inn, fører det til at

    ' skjermskuddet aldri blir større enn bildeboksen.

    PictureBox.AutoRedraw = True

    PictureBox.Width = PictureBox.Parent.ScaleX(Screen.Width, vbTwips)

    PictureBox.Height = PictureBox.Parent.ScaleY(Screen.Width, vbTwips)

   

    ' Ta skjermskuddet

    BitBlt PictureBox.hDC, 0, 0, Screen.Width / Screen.TwipsPerPixelX, _

    Screen.Height / Screen.TwipsPerPixelY, GetDC(GetDesktopWindow), 0, _

      0, vbSrcCopy

   

End Sub

 

Dersom du legger ovennevte kode inn i en modul/form, er alt du behøver å kalle for å ta et skjermskudd følgende:

 

' Ta et skjermskudd

Screenshot picScreenshot

 

For å lagre skjermskuddet til en BMP-fil, gjøres dette:

 

' Lagre bildeboksens skjermskudd til en BMP-fil

SavePicture picScreenshot.Image, "C:\Test.bmp"

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...