Este artigo demonstra como programaticamente copiar a janela ativa ou a tela inteira para a área de transferência e imprimir a imagem.Este artigo mostra como capturar qualquer formulário ou janela, incluindo a tela e colocá-lo em um objeto de imagem do Visual Basic.Se o único requisito for copiar a tela ou janela ativa para a área de transferência, chamar a API keybd_event teremos a mesma funcionalidade que combinação das teclas [ALT] + [PRINTSCRN] (copiar a janela ativa para a área de transferência) ou [PRINTSCRN] (copiar a tela para a área de transferência). Se também precisas imprimir a imagem, um controle PictureBox oculto pode fornecer essa funcionalidade.Passo a passo1 - Inicie um novo projeto Visual Basic Standard EXE. O Form1 é criado por padrão.2 - Adicione três CommandButtons e um controle PictureBox ao Form1.3 - Adicione o seguinte código na seção General Declarations do Form1: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 OSVERSIONINFOdwOSVersionInfoSize As LongdwMajorVersion As LongdwMinorVersion As LongdwBuildNumber As LongdwPlatformId As LongszCSDVersion As String * 128End TypePrivate Const KEYEVENTF_KEYUP = &H2Private Const VK_SNAPSHOT = &H2CPrivate Const VK_MENU = &H12Dim blnAboveVer4 As BooleanPrivate Sub Command1_Click()If blnAboveVer4 Thenkeybd_event VK_SNAPSHOT, 0, 0, 0Elsekeybd_event VK_SNAPSHOT, 1, 0, 0End IfEnd SubPrivate Sub Command2_Click()If blnAboveVer4 Thenkeybd_event VK_SNAPSHOT, 1, 0, 0Elsekeybd_event VK_MENU, 0, 0, 0keybd_event VK_SNAPSHOT, 0, 0, 0keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0End IfEnd SubPrivate Sub Command3_Click()' Load the captured image into a PictureBox and print itLet Picture1.Picture = Clipboard.GetData()Printer.PaintPicture Picture1.Picture, 0, 0Printer.EndDocEnd SubPrivate Sub Form_Load()Dim osinfo As OSVERSIONINFODim retvalue As IntegerLet osinfo.dwOSVersionInfoSize = 148Let osinfo.szCSDVersion = Space$(128)Let retvalue = GetVersionExA(osinfo)If osinfo.dwMajorVersion > 4 Then blnAboveVer4 = TrueLet Picture1.Visible = FalseLet Command1.Caption = "Print Screen"Let Command2.Caption = "Alt+Print Screen"Let Command3.Caption = "Print Image"End Sub4 - Abrir o Microsoft Paint e execute o projeto.5 - Clique no botão Print Screen , alterne para o Paint e pressione CTRL+V para colar o conteúdo da área de transferência no Paint. A tela inteira é colada.6 - Clique no botão ALT + PRINT SCREEN , alterne para Paint como antes e pressione CTRL+V novamente. Somente a janela ativa é colada.7 - Clique no botão Imprimir imagem e a imagem capturada imprimirá (usando um PictureBox oculto).
Reference::161299 Como captura e a tela, um formulário ou qualquer janela de impressão
189249 Como determinar qual versão do Windows de 32 bits está sendo usado
230502 How To Print a Form That is Too Large for the Screen or Page
178076 How To Use a PictureBox to Control Orientation Printing a Form
194580 How To Print a Composite Image From a RichTextBox146022 How To Set Up the RichTextBox Control for WYSIWYG Printing
Tags: VBA, Access, transferência, clipboard, API, keybd_event, PRINTSCRN, PictureBox, ALT,
✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.
Access VBA - Como copiar a tela ou janela para a área de transferência a partir do Visual Basic - How To Capture and Print the Screen, a Form, or Any Window
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário