Notifications
Clear all

Registros de DLL's

9 Posts
2 Usuários
0 Reactions
1,075 Visualizações
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Prezados (as),

Estou quase concluindo o meu projeto de controle de despesas pessoais. Ele é todo em Visual Basic e, por conta disso, possui inúmeros objetos, tais como: listview, listbox, Monthview. Quero disponibiliza-lo para download, gratuito, no Youtube e no planilhando.com.br.

Porém, vocês sabem que, para executar os objetos descritos acima, a DLL mscomctl.ocx precisa está devidamente registrada, do contrário o Excel dará alertas de erros.

O que desejo fazer é desenvolver um código, script e/ou um bat que, antes de executar a planilha, verifica se tal DLL está registrada ou não e, se preciso for, registrá-la.

É possível?

 
Postado : 07/02/2014 10:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lorenzon, possível é,, mas, sempre temos um mas qdo falamos de windows, temos de certificar as versões dos sistemas operacionais, do aplicativo office, se são todos 32 ou 64 bits, ou seja temos diversos parametros a serem considerados e que com certeza gerara incompatibilidades.
Resumindo, no tópico abaixo temos alguma coisa sobre o assunto:
Adicionar referencias por vba
viewtopic.php?t=8667&p=45807

Outros links interessantes:
Add references programmatically with VB or VBA
http://it.toolbox.com/wiki/index.php/Ad ... _VB_or_VBA

How to add a reference programmatically vba-Excel
http://stackoverflow.com/questions/9879 ... -vba-excel

Se pesquisar no Google pela expressão - vbProj.References excel vba encontrara varios artigos.

[]s

 
Postado : 07/02/2014 11:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde lorenzon,

Segue em anexo um exemplo para win 32bits e 64 bits.

Qualquer coisa da o grito.

 
Postado : 07/02/2014 11:54 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Opa... enquanto estava fazendo o Mauro postou...

Vale ressaltar as dicas dele também... (que já me foram muuuuuuito úteis)
Isso dá bastante dor de cabeça... acabei optando em utilizar as ferramentas nativas do Excel devido a compatibilidade.

Qualquer coisa da o grito.
Abraço

 
Postado : 07/02/2014 11:56 am
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Mauro,

A minha ideia é exatamente essa! verificar se o windows é 32 ou 64, bem como verificar a versão do Excel e, depois disso, fazer os devidos registros.

Eu até havia inseri alguns códigos no workbook, mas todos foram interpretados como vírus.

Peguei o exemplo que você postou, vide o código:

'Silently register a file with administrator elevated access
Sub RegisterFile(ByVal sFileName As String)
ShellExecute 0, "runas", "cmd", "/c regsvr32 /s " & """" & sFileName & """", "C:", 0 'SW_HIDE =0
End Sub

'Silently unregister a file with administrator elevated access
Sub UnRegisterFile(ByVal sFileName As String)
ShellExecute 0, "runas", "cmd", "/c regsvr32 /u /s " & """" & sFileName & """", "C:", 0 'SW_HIDE =0
End Sub

Confesso que não sei se deu certo, pois ao executá-lo, nada de diferente aconteceu, talvez é pq as DLL's já estão registrada.

Bernardo!

Gostei da sua dica, mas existe um código a ser posto no workbook que verifica se é 32 ou 64 e, depois disso, execute o respectivo bat?

 
Postado : 07/02/2014 12:52 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lorenzon, se não me engano tenho em casa alguns exemplos que fazem a verificação e relaciona as referencias instaladas, depois verifico e posto, quanto a versão não tenho certeza, eu tenho rotina da vs versões do excel 97 / 200 / 2003 ... mas de sistema não, preciso fazer algumas pesquisas.

[]s

 
Postado : 07/02/2014 1:50 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

ok Mauro!

Aguardo retorno!

 
Postado : 07/02/2014 6:44 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Lorenzon, como bem mencionado pelo Bernardo, dependendo dos locais (PCs) que for utilizar seu aplicativo, tenha um comprimido parador de cabeça e muita paciencia.

Uma OBS IMPORTANTE
Antes de começar a Registrar ou mexer com as Bibliotecas do Windows ou Pacote Office, alias qualquer aplicativo, faça Backup e crie um Ponto de Restauração.
Lembrando que estas são informações tiradas da Net, e o PLANILHANDO ou quem estiver compartilhando não se responsabiliza por qualquer dano que venha ocorrer.

Desta forma segue um Modelo, onde lista as referencias(Bibliotecas) instaladas, verifica, instala uma Referencia do App Word, verificaVersãodo Windows e do Office, só não pude testar referencias ao sistema 64 bits por não ter esta versão instalada, mas segue alguns links interessantes.

Verificar, instalar Referencias

Links Interessantes, vale a pena ler:
How should I make my VBA code compatible with 64-bit Windows?
http://stackoverflow.com/questions/5506 ... it-windows

http://stackoverflow.com/questions/9879 ... -vba-excel

http://www.tomasvasquez.com.br/artigos/ ... rencia.htm

http://prginfo.blogspot.com.br/2009/04/ ... s-com.html

http://www.mrexcel.com/forum/excel-ques ... tions.html

http://brzexceldeveloper.blogspot.com.b ... s-api.html

Se realizar pesquisa no Google encontrara uma infinidade de de posts sobre o assunto,.

Espero que ajude

[]s

 
Postado : 07/02/2014 7:12 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

incrível Mauro, mas tenho que estudá-los mais a fundo!

A minha intenção é de, no máximo, o usuário, ao executar a planilha pela primeira vez, se deparar com uma userform de instalação, a qual o solicitará que clique em avançar/next para que a mesma verifique as versões do win e registre os devidos objetivos e/ou o que for preciso.

O desafio é grande. Tenho certo conhecimento em VB, me dou bem com as lógicas, mas esse lance ta me pondo no chão! É algo que nunca parei para fazer!

Mas, de antemão, agradeço pelas dicas! Foram top's!

 
Postado : 07/02/2014 8:53 pm