Al momento sei offline in attesa che la connessione Internet venga ristabilita

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

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I240653
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):
161299HOWTO: 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 ExplicitPrivate 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 IntegerPrivate Type OSVERSIONINFO      dwOSVersionInfoSize As Long      dwMajorVersion As Long      dwMinorVersion As Long      dwBuildNumber As Long      dwPlatformId As Long szCSDVersion As String * 128 End TypePrivate Const KEYEVENTF_KEYUP = &H2 Private Const VK_SNAPSHOT = &H2C Private Const VK_MENU = &H12Dim blnAboveVer4 As BooleanPrivate Sub Command1_Click()      If blnAboveVer4 Then          keybd_event VK_SNAPSHOT, 0, 0, 0      Else          keybd_event VK_SNAPSHOT, 1, 0, 0      End If End SubPrivate 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 IfEnd SubPrivate 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 SubPrivate 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" End 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):
161299HOWTO: Capture and Print the Screen, a Form, or any Window

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

ID articolo: 240653 - Ultima revisione: 08/19/2003 11:58:00 - Revisione: 1.0

  • 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
  • kbapi kbvbp kbvbp500 kbclipboard kbvbp600 kbgrpvb kbprinting kbsdkwin32 KB240653
Feedback