Páginas

terça-feira, 15 de fevereiro de 2011

Copiando e Registrando componentes na máquina

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:

Myke House disse...

Erro de Compilação:
O tipo definido pelo usuário não foi definido

e aponta para esta linha

Dim x As New Shell

Myke House disse...

Realizados os passos descritos

tentei pesquisar na net para averiguar,
utilizei ambiente VB no Excel Office 2007

Bruno Leite disse...

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

Related Posts Plugin for WordPress, Blogger...