Originariamente inviato da magnifico09
Come posso fare per "stretchare" l'immagine catturata?
Ti ho indicato il metodo PaintPicture(), usa quello:

1) Aggiungi un secondo PictureBox (Picture2)
2) un terzo pulsante (Command3)
3) copia questo codice:

codice:
Private Sub Command3_Click()

    Dim hWnd As Long
    Dim hDC As Long
    
    hWnd = GetDesktopWindow()
    hDC = GetWindowDC(hWnd)
    
    Picture1.Appearance = 0 ' Flat
    Picture2.Appearance = 0 ' Flat
    Picture1.AutoRedraw = True
    Picture2.AutoRedraw = True
    Picture2.Width = Screen.Width
    Picture2.Height = Screen.Height
    Picture1.Visible = True (*)
    Picture2.Visible = True (*)

    ' copio l'immagine catturata su Picture2
    BitBlt Picture2.hDC, 0, 0, Screen.Width, Screen.Height, hDC, 0, 0, vbSrcCopy
    Picture2.Picture = Picture2.Image ' rendo l'immagine persistente
    
    ' rimpicciolisco (stretch) l'immagine in base alle dimensioni di Picture1
    Picture1.PaintPicture Picture2, 0, 0, Picture1.Width, Picture1.Height, , , , , vbSrcCopy
    Picture1.Picture = Picture1.Image ' rendo l'immagine persistente
    
    ReleaseDC hWnd, hDC

End Sub
Ora il Command2 salverà l'immagine rimpicciolita.

(*) Nota che ho impostato Visible=True per entrambi i PictureBox, ma è solo perchè tu possa vedere e capire cosa avviene, poi potrai nasconderle entrambe.