... Pague apenas R$47,00 uma única vez e tenha acesso por 1 ano aos vídeos e arquivos exemplos do site ...

Clique aqui e obtenha mais detalhes.


Esconder o Access

Com a combinação de algumas APIs é possível definir o grau de transparência do Access e/ou seus objetos.  O grau de transparência tem um range que vai de 0 a 255.  O valor zero(0) torna o aplicativo totalmente oculto e 255 totalmente visível. No código abaixo utilizei apenas os valores 0 e 255, mas nada impede que seja feita uma pequena alteração e outros valores sejam testados. 

Nota: As APIs sofreram alterações na sua escrita a partir da versão 2010 do Access.  Veja todos os detalhes desta mudança neste meu artigo.   Adaptei o código abaixo para atender as diversas versões.

Option Compare Database

#If VBA7 Then
'-------------------------------------------
' versões 2010 e 2013 - 32 e 64 bits
'--------------------------------------------
Declare PtrSafe Function SetLayeredWindowAttributes Lib "user32" _
(ByVal hwnd As LongPtr,ByVal crKey As Long,ByVal bAlpha As Byte,ByVal dwFlags As Long) As Long

Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As LongPtr, ByVal nIndex As Long) As Long

Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

#Else
'-------------------
'versão 2007
'------------------
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long

Declare Function SetLayeredWindowAttributes Lib "user32" _
(ByVal hwnd As Long,ByVal crKey As Long,ByVal bAlpha As Byte,ByVal dwFlags As Long) As Long

#End If

'Constantes
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_ALPHA = &H2
 
------------------------------------------------------------------------------------------------
 
Private Function fncOcultarAccess(Ocultar As Boolean) As Boolean
Dim lngHwnd As Long
Dim bytNivel As Byte
lngHwnd = Application.hWndAccessApp
bytNivel = IIf(Ocultar, 0, 255)
SetWindowLong lngHwnd, GWL_EXSTYLE, GetWindowLong(lngHwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes lngHwnd, 0, bytNivel, LWA_ALPHA
fncOcultarAccess = True
End Function

Esconder o Access: Call fncOcultarAccess(True)

Retornar a visualizar o Access: Call fncOcultarAccess(false)

Bom estudo!


 

 


Não há comentário

Envie seu comentário: