USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Windows)

Título da Dica:  Utilizando API's para reaproveitar a interface do Windows
Postada em 3/9/2003 por Ð@®l@n            
O Windows disponibiliza uma API chamada SHFILEOPERATION, localizada na shell32.dll que pode ser utilizada para reaproveitar a interface gráfica do windows.

Por exemplo : Quando movemos um arquivo para a lixeira pelo explorer além de aparecer a mensagem de confirmação aparece uma janela com a folhinha voando em direção a lixeira. Fazer isso em nossa aplicação é trabalhoso, por isso o sistema operacional nos fornece tudo pronto através da SHFILEOPERATION, basta chama-la.

Para chamarmos esta API precisamos da declaração de um tipo de dados, que será transmitido a ela durante a chamada. Veja como fica a declaração :

Private Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type

Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40

Private Declare Function SHFileOperation Lib "shell32.dll" Alias _
"SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

Neste exemplo estaremos deletando um arquivo qualquer (jogando-o para a lixeira). Dai a definição das constantes FO_DELETE, que determina a operação a ser realizada e FOF_ALLOWUNDO, que determina um parâmetro da operação, ou seja, que o arquivo seja jogado para a lixeira e não deletado definitivamente.

Precisaremos de uma commondialog para perguntar ao usuário o arquivo que ele deseja deletar. Vamos chama-la de cdbox.

Veja como fica o código, inserido no load do form por comodidade para facilitar seu teste :

Private Sub Form_Load()

'Define uma variável como sendo do tipo que criamos
Dim SHFileOp As SHFILEOPSTRUCT

'Configura a commondialog para obter o nome do arquivo a deletar e faz o show
cdBOX.DialogTitle = "Select a file to delete ..."

'Set the dialog's filter
cdBOX.Filter = "All Files (*.*)|*.*"

'Show the 'Open File' dialog
cdBOX.ShowOpen

'Inicia a configuração da variável
With SHFileOp

'Atribui a wFunc a identificação da tarefa a ser realizada : Deletar o arquivo
.wFunc = FO_DELETE

'Atribui a pFrom o nome do arquivo
.pFrom = cdBOX.FileName

'atribui a fFlags parâmetros adicionais, no caso a determinação de que seja
'movido para a lixeira
.fFlags = FOF_ALLOWUNDO
End With

'Executa a deleção chamando a função e transmitindo nossa variável
SHFileOperation SHFileOp

MsgBox "O arquivo '" + cdBOX.FileName + "' foi movido para a lixeira !", vbInformation + vbOKOnly, App.Title

End Sub

Obs: A nova versão do guia de API's disponibilizado em nossa área de download possui inclusive um exemplo em .NET desta API
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página