Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
268
Assunto : Visual Basic
Titulo: Utilizando API's para reaproveitar a interface do Windows

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



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

Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br