Chcete si vytvořit program, který udělá screenshot obrazovky?
V tomto díle seriálu k Visual Basicu si zkusíme vytvořit program, který bude snímat obrázek plochy a poté ukládat na námi zvolené místo. Budeme snímat celou plochu a poté ji ukládat ve formátu BMP.
Na formulář umístěte:
- 3× Command Button (tlačítko)
- 1× Picture Box
- 1× Label (popisek)
- 1× TextBox
- 1× Common Dialog
Rozmístěte si ovládací prvky tak, jak jsou na obrázku:
Teď již budeme psát zdrojový kód k naší aplikaci.
Do deklarační části napište
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_SNAPSHOT = &H2C 'Snapshot button
Máme nadeklarováno a pustíme se do zbytku kódu.
Private Sub cmdActWin_Click()
Me.WindowState = vbMinimized
Me.Hide
Pause txtPause
Clipboard.Clear
Call keybd_event(VK_SNAPSHOT, 1, 0, 0)
DoEvents
Picture1.Picture = Clipboard.GetData()
Me.Show
Me.WindowState = vbNormal
cmdSave.Enabled = True
End Sub
Private Sub cmdClear_Click()
'vyčistí PictureBox
Set Picture1.Picture = Nothing
cmdSave.Enabled = False
End Sub
Private Sub cmdSave_Click()
'dialog pro uložení obrázku
On Error GoTo Error
With CD1
.DialogTitle = "Uložit obrázek..."
.FileName = "screenshot"
.Filter = "Bitmap (*.bmp)|*.bmp"
.CancelError = True
.Flags = &H2
.ShowSave
If .FileName = "" Then GoTo Error
'uloží obrázek jako Bitmapu
SavePicture Picture1.Picture, .FileName
End With
Error:
msgbox "chyba"
End Sub
Sub Pause(interval)
'prodleva před snímáním obrázku
Current = Timer
Do While Timer - Current < Val(interval)
DoEvents
Loop
End Sub