APLICATIVO VB-6 COM ARQUIVOS EMBUTIDO NO EXE

DANLEONHART 27/12/2011 22:23:10
#392025
Pessoal...

Tem como colocar dentro do executavel compilado algum arquivo, tipo [Ô].dll[Ô], [Ô].ocx[Ô] ou outro qualquer ???
ví uma aplicação em VB-6 que era apenas o executável, e depois verifiquei e ví que ela havia colocado uma foto dentro do [Ô]C:\[Ô]...

outro detalhe é que quando esta aplicação era executada (2 cliques), ela abria uma caixa de diálogo igual ao de um instalador...

alguém já fez algo parecido no VB-6 ???
KERPLUNK 28/12/2011 08:51:34
#392032
Bem, quanto à DLL[ô]s e OCX, a coisa complica um pouco. DLL[ô]s e OCX ActiveX, dependem de registro no windows e a aplicação depende de essas DLL[ô]s e OCX estarem instaladas e registradas. Uma foto, é bem simples. Basta colocar em uma imagelist ou mesmo uma picturebox e usar o método SaveImage, mas um componente ActiveX a coisa complica bastante. Infelizmente VB6, não é muito independente não. O que vc pode fazer e talvez dê certo é:
Uma aplicação independentde de ActiveX(como em C++ por exemplo), que verifica se os componentes ActiveX da sua aplicação estão instalados corretamente e caso estejam, chama a sua aplicação(que nesse caso, pode ser até mesmo uma outra ActiveX, uma DLL).
Talvez até seja possível fazer isso com VB6, mas com certeza seria algo bastante trabalhoso(pra não dizer uma gambiarra [Ô]a la McGyver[Ô])
NLSOLUCOES 28/12/2011 11:09:32
#392044

Acho que sei o que vc quer, mas tbém acho pouco provável que alguém que conheça e que tenha bom senso o ajude de alguma forma.

Porém qual seria finalidade deste projeto?

KAIBOLL 28/12/2011 11:14:38
#392045
eu já fiz, coloca no os arquivos no resource...procura aqui no site que tem como fazer isso
DANLEONHART 28/12/2011 11:41:42
#392046
[txt-color=#e80000]Pessoal[/txt-color] : de antemão quero deixar bem claro que meu projeto não se trata de um Troyan... tenho em mente uma execução em runtime parecido com uma aplicação do tipo [Ô]Portable[Ô]...mas só parecido.

O que vou embutir são bibliotecas criadas por mim mesmo...e também imagens e ícones... estes já estão inclusos da maneira que o KERPLUNK citou...

[txt-color=#0000f0]KAIBOLL[/txt-color]: é justamente onde estou quebrando a cuca...pois coloquei as bibliotecas no Resource Editor do tipo CustonData... e estou querendo salvá-la no disco ao executar o aplicativo...

só que com a função [Ô]LoadResData()[Ô] ele retorna um Array de Bytes, e estou tentando dessa maneira para salvar:

Sub CV_Bytes()
Dim b() As Byte
Dim fileN As Long
Dim vLocal As String

vLocal = Environ([Ô]SYSTEMDRIVE[Ô]) & [Ô]\Arquivo.dll[Ô]

Open vLocal For Binary Access Write As LoadResData(150, [Ô]DLL[Ô])

Put LoadResData(150, [Ô]DLL[Ô]), 1, b()
Close fileN
End Sub


Só que dá erro runtime [txt-color=#e80000]13-Type mismatch[/txt-color]
a aponta para a linha:
Open vLocal For Binary Access Write As LoadResData(150, [Ô]DLL[Ô])


Estou tentando encontrar o problema...mas conto com a ajuda dos colegas também !
LLAIA 28/12/2011 11:50:16
#392047
Resposta escolhida
Cara não tenho certeza, mas substitua LoadresData do open e do put e use a variavel fileN.

Open vLocal For Binary Access Write As fileN

Put fileN, 1, b()

Close fileN


Acho que o array b() tem que receber o retorno de LoadResData
DANLEONHART 28/12/2011 12:02:57
#392049
Obrigado [txt-color=#0000f0]LLAIA[/txt-color]

Corrigi meu script baseando-me também nesse link:
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=353147&varWorld=

Ficou assim:

Sub CVBytes()
Dim MyArray() As Byte
Dim fileN As Long
Dim vLocal As String

vLocal = Environ([Ô]SYSTEMDRIVE[Ô]) & [Ô]\Arquivo.dll[Ô]

MyArray = LoadResData(150, [Ô]DLL[Ô])
fileN = FreeFile

Open vLocal For Binary Access Write As #fileN

Put fileN, , MyArray
Close fileN
End Sub


Está funcionando !

Obrigado a todos !
Tópico encerrado , respostas não são mais permitidas