No Post de hoje, mostrarei como é possível inserir uma DLL e registrar a mesma na máquina.
Isto pode ser útil por exemplo para instalar uma DLL que evite as mensagens de confirmação do Outlook para o Envio de Email, esta DLL pode ser baixada aqui.
No caso de uma grande empresa o uso desta DLL pode ser inviável devido a grande quantidade de máquinas que utilizarão a ferramenta desenvolvida, impossibilitando a instalação da mesma em todas as máquinas, com esta aplicação é possível que seja instalada automaticamente.
ATENÇÂO: Esta aplicação irá instalar um componente na máquina, portanto utilize somente com componentes conhecidos por você, e evitem utilizar arquivos que contenham macros vindos de fontes desconjecidas, estes arquivos podem ser capazes de inutilizar sua máquina.
Feito todos os avisos vamos lá...
O Primeiro passo para esta tarefa é incorporar a DLL a uma pasta de trabalho, para fazer isto faça o seguinte
Vá ao Menu Inserir, selecione a opção Objeto
Clique na aba Criar do Arquivo, e selecione a DLL que deseja incorporar
Marque a opção Vincular ao Arquivo e clique em OK
Pronto já demos o primeiro passo na criação da aplicação, sua planilha ficará da seguinte maneira
O Segundo passo é extrair a DLL para uma pasta na máquina do usuário e registrá-la para isto usaremos a seguinte rotina.
Sub CopiaDll() 'Desenvolvida por Bruno Leite 'bruno_silva_leite@yahoo.com.br 'http://officevb.com Dim Obj As OLEObject Dim Fld As Object Dim MyFile As String Dim x As New Shell 'Verificando a Existencia da DLL na pasta MyFile = Dir(Environ("temp") & "\SafeMail", vbDirectory) 'Não existe? If MyFile = "" Then MsgBox "Esta é a primeira execução do sistema nesta máquina " & vbNewLine & "Para que ele funcione corretamente, na tela que será exibida a seguir selecione 'I Agree' e clique em 'OK'", vbInformation MyFile = Environ("temp") & "\SafeMail" 'Crie o Diretório MkDir MyFile Set Fld = x.Namespace(MyFile) 'copiando a DLL da planilha Set Obj = plan1.OLEObjects(1) Obj.Copy 'colando na pasta criada Fld.Self.InvokeVerb "Paste" Set Obj = Nothing Set Fld = Nothing 'registrando a DLL Shell "Regsvr32 " & MyFile & "\Redemption.dll /s", vbNormalFocus End If End Sub
Agora crie um botão na sua planilha e aponte para a macro CopiaDLL.
Execute a macro, você receberá uma mensagem indicando que a redemption esta sendo instalada (aliás este é o único incoveniente desta DLL na versão gratuita), clicando em OK a instalação e registro da DLL foram concluídos.
Neste caso a DLL ao ser registrada emite ela mesmo um aviso da instalação (Termos de Uso), se fosse uma aplicação maliciosa ela provavelmente não avisaria nada e instalaria automaticamente uma DLL em sua máquina sem que você soubesse.
Esta aplicação foi desenvolvida por mim com ajuda do Adelson http://adelsonrms.com/
Bom por hoje é só!
Até +
3 comentários:
Erro de Compilação:
O tipo definido pelo usuário não foi definido
e aponta para esta linha
Dim x As New Shell
Realizados os passos descritos
tentei pesquisar na net para averiguar,
utilizei ambiente VB no Excel Office 2007
Olá desculpe pela demora na resposta...
Você tem razão Mike, esqueci um passo, para realizar a referência para o Shell...
Altere a linha
Dim x As New Shell
pelas
Dim x As Object
Set x = CreateObject("Shell.application")
Desta maneira irá funcionar corretamente...
Teste ai e qualquer coisa fale...
Postar um comentário