REFERENCIAR OCX

CHDSSANTOS 26/03/2013 10:39:36
#421052
Olá Pessoal!

Primeiro desculpem a minha ignorância, embora curta muito VB, não sou um usuário avançado.

Minha duvida é em relação a alguns problemas que tenho quando tento usar alguns componentes, como gráficos, web, inet, etc, em algum PC que não é o meu, com versões do Windows diferentes.
Recebo a mensagem que trata-se da ausência de alguma Ocx que uso no projeto. Já li muitos artigos aqui sobre esse problema, mas não consegui algo que fosse o que gostaria de saber, o que gostaria de saber é se tem como levar essas Ocx na mesma pasta do EXE e referencia-las via código?
Mas é claro que se alguém tiver uma solução mais correta, gradeceria muito.
Desde já, valeu pela ajuda!


KERPLUNK 26/03/2013 12:14:40
#421062
Resposta escolhida
Sim, tem como colocar as OCX e DLL necessárias na mesma pasta da aplicação. Mas para registrá-las, não tem como ser o próprio programa, tem que ser por alguma via alternativa, um simples arquivo em lote pode resolver, mas o IDEAL é criar um setup da sua aplicação.
CHDSSANTOS 26/03/2013 19:45:28
#421092
KERPLUNK, muito obrigado! Vou dar uma pesquisada sobre isso aqui no fórum, mas muito obrigado mesmo pelo esclarecimento.
CHDSSANTOS 27/03/2013 20:09:07
#421145
LEORETORICO, obrigado pela explicação!

Agora ficou ainda mais claro, mas sendo sincero, meu conhecimento em Inno Setup é bem basico, se puder me mandar o tutorial de como lidar com o Inno Setup e que oriente a como registrar Ocx e/ou DLL agradeço ainda mais!

Abraços.
CHDSSANTOS 29/05/2013 19:25:18
#424222
LEORETORICO,

Obrigado pela ajuda e por ter criado o video! Ficou facil agora...

https://www.youtube.com/watch?v=mNR_g3-BFzM

Valeu!
MARCELO.TREZE 29/05/2013 19:39:55
#424223
Bom eu faço desta forma


Vou explicar aqui como fazer para saber quais OCX's e DLL's possuem o programa e depois registrar estas com o inno setup

Primeiro para saber quais dll's e ocx's devo incluir em meu instalador, e quais tenho de registrar eu faço da seguinte forma, em outro tópico deste forum peguei a seguinte dica:

primeiro crio um instalador normalmente utilizando o Package & Deployment Wizard do Visual Studio

para isto caso não saiba vá em INICIAR / MICROSOFT VISUAL STUDIO 6.0 / MICROSOFT VISUAL STUDIO 6.0 TOOLS / PACKAGE & DEPLOYMENT WIZARD, e siga as instruções

Feito isso vou na pasta Onde foi criado o instalador ( no meu caso o nome é Package) e abro o arquivo setup.lst com o bloco de notas, este arquivo contem a lista de todas as dll's que seu programa vai precisar e quais devem ser registradas.

eis um exemplo retirado do setup.lst do instalador que criei:

[Bootstrap Files]
File1=@VB6STKIT.DLL,$(WinSysPathSysFile),,,7/15/00 12:00:00 AM,101888,6.0.84.50
File2=@COMCAT.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,5/31/98 12:00:00 AM,22288,4.71.1460.1
File3=@STDOLE2.TLB,$(WinSysPathSysFile),$(TLBRegister),,6/3/99 12:00:00 AM,17920,2.40.4275.1
File4=@ASYCFILT.DLL,$(WinSysPathSysFile),,,3/8/99 12:00:00 AM,147728,2.40.4275.1
File5=@OLEPRO32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,3/8/99 12:00:00 AM,164112,5.0.4275.1
File6=@OLEAUT32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,4/12/00 12:00:00 AM,598288,2.40.4275.1
File7=@msvbvm60.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,2/23/04 12:00:00 AM,1386496,6.0.97.82


imprima o conteudo para depois você poder fazer as alterações no seu instalador Inno Setup

Agora você inicializa seu instaldor Inno Setup , e ao chegar na parte chamada Application Files clique no botão Add File(s)... vá até a pasta onde você criou o instalador usando o PDW e abra a pasta Support, nela estão todas as DLL's e OCX's necessárias para seu programa, selecione-as e clique em abrir, ai basta você continuar a criar seu instalador até o final, ao terminar ele vai perguntar se você deseja compilar o programa e você vai selecionar não.

A seguir ira aparecer uma lista com os arquivos que foram selecionados, abaixo coloquei apenas quatro linhas para simplificar a explicação:

Source: [Ô]C:\Ultimo Instalador    esteinstalador\Support\ST6UNST.EXE[Ô]; DestDir: [Ô]{app}[Ô]; Flags: ignoreversion

Source: [Ô]C:\Ultimo Instalador    esteinstalador\Support\STDOLE2.TLB[Ô]; DestDir: [Ô]{app}[Ô]; Flags: ignoreversion

Source: [Ô]C:\Ultimo Instalador    esteinstalador\Support\TABCTL32.OCX[Ô]; DestDir: [Ô]{app}[Ô]; Flags: ignoreversion

Source: [Ô]C:\Ultimo Instalador    esteinstalador\Support\OLEPRO32.DLL[Ô]; DestDir: [Ô]{app}[Ô]; Flags: ignoreversion

bom agora vem a parte mais divertida, que é digitar veja as alterações que devem ser feitas nestas linhas

voltando lá em cima onde eu imprimi as linhas do aqruivo setup.lst, onde estiver escrito DLLSelfRegister é proque esta dll deve ser registrada.


então você vai alterar a seguinte linha de:

Source: [Ô]C:\Ultimo Instalador    esteinstalador\Support\OLEPRO32.DLL[Ô]; DestDir: [Ô]{app}[Ô]; Flags: ignoreversion

para: [ô]trate as linhas como uma só

Source: [Ô]C:\Ultimo Instalador    esteinstalador\Support\OLEPRO32.DLL[Ô]; DestDir: [Ô]{sys}[Ô]; CopyMode: alwaysskipifsameorolder; Flags: restartreplace uninsneveruninstall sharedfile regserver

e assim para todas as dll's que possuem DLLSelfRegister
Agora para os arquivos com extensão .TLB deve ser feito da seguinte forma

de:

Source: [Ô]C:\Ultimo Instalador    esteinstalador\Support\STDOLE2.TLB[Ô]; DestDir: [Ô]{app}[Ô]; Flags: ignoreversion

para:

Source: [Ô]C:\Ultimo Instalador    esteinstalador\Support\STDOLE2.TLB[Ô]; DestDir: [Ô]{sys}[Ô]; CopyMode: alwaysskipifsameorolder; Flags: restartreplace uninsneveruninstall sharedfile regtypelib

e pronto suas dll's serão registradas ao se instalar seu programa

Apenas algumas Observações no PDW onde estão marcadas como {WinSysPathSysFile} no Inno setup deve estar como DestDir: [Ô]{sys}[Ô] .

agora para ocx este deve ser o código

Source: [Ô]C:\Ultimo Instalador    esteinstalador\Support\TABCTL32.OCX[Ô]; DestDir: [Ô]{sys}[Ô]; CopyMode: alwaysskipifsameorolder; Flags: restartreplace sharedfile regserver

e assim por diante

Espero que eu tenha esclarecido suas duvidas, pois se vocês seguirem estes passos, o problema quanto a instaladores, acabará, lembrando que estou ensinando a localizar as dll's e Ocx's e registrar estas, e não como utilizar o inno setup
Tópico encerrado , respostas não são mais permitidas