REFERENCIAR OCX
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!
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!
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.
KERPLUNK, muito obrigado! Vou dar uma pesquisada sobre isso aqui no fórum, mas muito obrigado mesmo pelo esclarecimento.
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.
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.
LEORETORICO,
Obrigado pela ajuda e por ter criado o video! Ficou facil agora...
https://www.youtube.com/watch?v=mNR_g3-BFzM
Valeu!
Obrigado pela ajuda e por ter criado o video! Ficou facil agora...
https://www.youtube.com/watch?v=mNR_g3-BFzM
Valeu!
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
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