13 fevereiro 2008

"Print Screen" através de VBA



"Print Screen" através de VBA

Existe a possibilidade em aceder via VBA a todas as teclas do teclado usando o SENDKEYS (funciona com todas as teclas do teclado), mas infelizmente não consegui usar o sendkeys para o printscreen, testei outras teclas, como o ALT, o END, o INSERT e funcionam perfeitamente, o printscreen é uma das que eu não consegui por a funcionar. Esta tecla é muito boa para podermos realizar por ex: manuais, ou capturas do algo do AutoCAD, para colocarmos noutro programa.

Para o "PRINTSCREEN" (Captura do todo o ecran)

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 Const VK_SNAPSHOT = &H2C
Sub PrintScreen()
keybd_event VK_SNAPSHOT, 1, 0, 0
End Sub

Para o "ALT+PRINTSCREEN" (Captura do formulário/form activo)


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 Const KEYEVENTF_KEYUP = &H2
Private Const VK_SNAPSHOT = &H2C
Private Const VK_MENU = &H12
Sub AltPrintScreen()
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 Sub

Download da rotina PrintScreen, espero que seja muito útil esta rotina...







Sem comentários: