Procedura: Copiare lo schermo o la finestra attiva da Visual Basic negli Appunti di Windows

Traduzione articoli Traduzione articoli
Identificativo articolo: 240653 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato precedentemente pubblicato con il codice di riferimento I240653
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene descritto come copiare in fase di programmazione la finestra attiva o l'intero schermo negli Appunti di Windows e quindi stampare l'immagine copiata.

Informazioni

Il codice incluso nell'articolo della Microsoft Knowledge Base (informazioni in lingua inglese):
161299 HOWTO: Capture and Print the Screen, a Form, or any Window
mostra come catturare qualsiasi maschera o finestra, compreso l'intero schermo, e inserirla in un oggetto immagine di Visual Basic. Se necessario semplicemente copiare la finestra attiva o lo schermo negli Appunti di Windows, l'API keybd_event costituisce un approccio pi semplice e meno dispendioso in termini di risorse. Richiamando l'API keybd_event si ottiene lo stesso risultato offerto della combinazioni di tasti STAMP (copia dello schermo negli Appunti) o ALT+STAMP (copia della finestra attiva negli Appunti). Se invece necessario anche stampare l'immagine incollata negli Appunti, sar necessario ricorrere a un controllo PictureBox nascosto.

Procedura di esempio

  1. Avviare un nuovo progetto EXE standard di Visual Basic. Il progetto Maschera1 creato in base all'impostazione predefinita.
  2. Aggiungere tre controlli CommandButtons e un PictureBox al progetto Maschera1.
  3. Aggiungere il codice riportato di seguito alla sezione General Declarations di Maschera1:
     
    Option Explicit
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal _ 
       bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    
    Private Declare Function GetVersionExA Lib "kernel32" _ (
                  lpVersionInformation As OSVERSIONINFO) As Integer
    
    Private Type OSVERSIONINFO 
         dwOSVersionInfoSize As Long 
         dwMajorVersion As Long 
         dwMinorVersion As Long 
         dwBuildNumber As Long 
         dwPlatformId As Long szCSDVersion As String * 
    128 End Type
    
    Private Const KEYEVENTF_KEYUP = &H2 Private Const VK_SNAPSHOT = &H2C Private Const VK_MENU = &H12
    
    Dim blnAboveVer4 As Boolean
    
    Private Sub Command1_Click() 
         If blnAboveVer4 Then 
             keybd_event VK_SNAPSHOT, 0, 0, 0 
         Else 
             keybd_event VK_SNAPSHOT, 1, 0, 0 
         End If 
    End Sub
    
    Private Sub Command2_Click() 
         If blnAboveVer4 Then 
             keybd_event VK_SNAPSHOT, 1, 0, 0 
         Else 
             keybd_event VK_MENU, 0, 0, 0 
             keybd_event VK_SNAPSHOT, 0, 0, 0 
             keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0 
             keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0 
         End If
    End Sub
    
    Private Sub Command3_Click() 
         ' Caricare l'immagine catturata in un controllo PictureBox e stamparla 
         Picture1.Picture = Clipboard.GetData() 
         Printer.PaintPicture Picture1.Picture, 0, 0 
         Printer.EndDoc 
    End Sub
    
    Private Sub Form_Load() 
         Dim osinfo As OSVERSIONINFO 
         Dim retvalue As Integer 
    
         osinfo.dwOSVersionInfoSize = 148 
         osinfo.szCSDVersion = Space$(128) 
         retvalue = GetVersionExA(osinfo) 
         If osinfo.dwMajorVersion > 4 Then blnAboveVer4 = True
    
         Picture1.Visible = False 
         Command1.Caption = "STAMP" 
         Command2.Caption = "ALT+STAMP" 
         Command3.Caption = "Stampa immagine" E
    nd Sub 
  4. Aprire Microsoft Paint ed eseguire il progetto.
  5. Fare clic sul pulsante STAMP, passare a Paint e premere CTRL+V per incollare il contenuto degli Appunti in Paint. Verr incollato l'intero schermo.
  6. Fare clic sul pulsante ALT+STAMP, passare a Paint e premere CTRL+V. Verr incollata solo la finestra attiva.
  7. Fare clic sul pulsante Stampa immagine e l'immagine catturata verr stampata utilizzando un controllo PictureBox nascosto.

Riferimenti

Per ulteriori informazioni, fare clic sui numeri degli articolo della Microsoft Knowledge Base riportati di seguito (informazioni in lingua inglese):
161299 HOWTO: Capture and Print the Screen, a Form, or any Window

189249 HOWTO: Determine Which 32-Bit Windows Version Is Being Used

Proprietà

Identificativo articolo: 240653 - Ultima modifica: martedì 19 agosto 2003 - Revisione: 1.0
Le informazioni in questo articolo si applicano a
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
Chiavi: 
kbapi kbvbp kbvbp500 kbclipboard kbvbp600 kbgrpvb kbprinting kbsdkwin32 KB240653
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com