× Aktuálně z oboru

Programátoři po celém světě dnes slaví Den programátorů [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]
Celá zprávička [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]

PrintScreen - jak udělat screenshot

[ http://programujte.com/profil/618-jan-maly/ ]Google [ :?rel=author ]       [ http://programujte.com/profil/118-zdenek-lehocky/ ]Google [ ?rel=author ]       6. 10. 2007       25 093×

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

Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2007012305-printscreen-jak-udelat-screenshot/ ].