CRIAR BAT PARA COPIAR E REG OCX

RICARDO.RAPA 18/12/2012 01:10:00
#416111
Pessoal, como faço para copiar e registrar OCX executando pelo um .BAT, no system32 (levando em consideração que a copia tem que ir para o diretório correto em caso de 32/64bit)

são elas:
MSFLXGRD.OCX
comdlg32.ocx
MSINET.OCX

a ideia é fazer rodar essa aplicação pelo pen-drive depois da execução do bat

Alguma ideia. Obrigado!
ALEVALE 18/12/2012 08:17:34
#416112
Acho que assim funcionaria, porém não sei qual é se existe diferena entre o diretório [Ô]SYSTEM32[Ô] para versões X86 ou X64 sei que na X64 existe o diretório (SysWOW64) porém o [Ô]SYSTEM32[Ô] é o mesmo altere conforme necessidade.

OBS:Outra questão é que precisa ter acesso [Ô]ADMINISTRADOR[Ô] para rodar o script.

Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry% | Find /i [Ô]x86[Ô]
If %ERRORLEVEL% == 0 (
GOTO X86
) ELSE (
GOTO X64
)


:X86
@echo on
setlocal

copy MINHADLL.DLL C:\WINDOWS\SYSTEM32 /Y

)

endlocal
GOTO END

:X64
@echo on
setlocal

copy MINHADLL.DLL C:\WINDOWS\SYSTEM32 /Y

)

endlocal
GOTO END

:End
LUIS.HERRERA 18/12/2012 09:09:35
#416119
Alevale não faltou o Regsvr32 para registrar, pois o copy só copia ? Nunca registrei manualmente no 64 bits, só via instalador, mas segundo alguns posts, o 64bits parece que tem de colocar as OCX e DLL na pasta SysWow64

Não testei seu código, mas acho que ficaria assim:


Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry% | Find /i [Ô]x86[Ô]
If %ERRORLEVEL% == 0 (
GOTO X86
) ELSE (
GOTO X64
)


:X86
@echo on
setlocal

copy MINHADLL.DLL C:\Windows\System32 /Y
[txt-color=#e80000]Regsvr32 /s MINHADLL.DLL [/txt-color]

)

endlocal
GOTO END

:X64
@echo on
setlocal

copy MINHADLL.DLL C:\Windows\[txt-color=#e80000]SysWow64[/txt-color] /Y
[txt-color=#e80000]Regsvr32 /s MINHADLL.DLL [/txt-color]

)

endlocal
GOTO END

:End


Nota 1:
Vi um exemplo que usou o caminho para invocar o Regsvr32, direto de sua pasta de instalação. Não sei se funciona:
C:\Windows\System32> regsvr32 suocx.ocx
ou
C:\Windows\SysWow64> regsvr32 suocx.ocx

Nota 2:
Explicação do parâmetro deste comando Regsvr32

/u desfaz o registro
/s registra modo silencioso

Diz se funcionou e como testou para ficar documentado aqui para futuras consultas dos colegas.
MARCELO.TREZE 18/12/2012 12:59:27
#416148
Só uma dica genérica ao que você deseja.

existe um programa que se chama PORTABILIZER que faz o que seu nome diz, torna seu programa portátil, verifique se com o mesmo você consegue fazer o que deseja de maneira mais fácil.


LUIS.HERRERA 18/12/2012 13:56:31
#416153
Esse portabilizer tem comentários que não funciona, só cria um atalho, pois na realidade manda copiar a pasta do seu programa para o pendriver. Eu não testei, pois como vi vários comentários que não funciona, desisti. Além disso o fato de copiar a pasta do programa para o pendriver, não quer dizer que ele se torne portátil. Hoje a maioria dos programas usam bibliotecas que não estão na pasta do programa, mas no Windows System.Assim não funciona, e se tiver chaves de registro do windows, piorou. Agora imagina se tem drivers de conexão a banco de dados ou outros recursos específicos. Talvez para um programa simples sem dependências externas, nem precisa dele, é só copiar a pasta do programa e pronto.

Acredito que para deixar algo portátil, teria que criar uma máquina virtual, pois como usaria bibliotecas sem ter no micro?
O Windows não permite que se use recursos de outros micros, ou seja, instalar um programa feito em VB6 no servidor e usar nas estações, sem instalar. Se colocar o atalho nas estações para o EXE do servidor, ele dirá que faltam várias bibliotecas e não dora. Já vi gente dizendo que dava, mas ninguém disse como e até hoje nunca encontrei ninguém que fizesse isso funcionar.

Se não tem um bom instalador, o Bat é uma solução mais trabalhosa, mas funciona.
MARCELO.TREZE 18/12/2012 14:41:31
#416157
Luiz eu não costumo ler os comentários de usuários, pois a maioria por falta de conhecimento acaba fazendo comentários sem fazer outras tentativas, eu sempre me baseio nos comentários da própria equipe baixaki, então eu acho que ele deveria testar por si próprio, já dei a mesma sugestão para um outro usuário daqui e parece que com ele funcionou.

eu também não testei.

LUIS.HERRERA 18/12/2012 16:28:37
#416164
Marcelo tudo bem.

Achei sua dica ótima, por isso fui atrás. Meu comentário foi baseado em outras experiências, pois também já tentei fazer isso com outros programas. Um era pago e outros 2 gratuitos do baixaki. Todos tinham ótimas referências dos avaliadores, mas na prática não funcionam com as características que citei. Só servem para programas simples que não tem a complexidade de componentes, como os que desenvolvemos com VB6 e bancos de dados, ou outros componentes de terceiros.

O que testei pago, fazia a instalação e registro de todas as dependências do programa no micro, sem que o usuário soubesse ou fosse informado para quem o utilizava. Descobri isso com teste, ou seja, pequei um micro limpo que não funcionava o programa e usei o pen para rodar. Funcionou. Porém depois eu tirei o pen (já que dizia ser portátil) pequei o EXE e coloquei no micro, rodei e funcionou. Fui ver e todas as OCX e DLL estavam instaladas. Então isso não é portátil, mas uma enganação.

O mesmo ocorreu com os gratuitos, porém nesse caso só funcionavam com programas não VB que não precisavam de runtime, pois tive o cuidade de tirar o runtime do VB6 do micro antes do teste. O programa não fuincionou. Então pequei um programinha simples que tinha só uma dlls próprias na mesma pasta sem registro, então funcionou. Foi só isso.

Concordo que tem gente falando coisas sobre programas sem saber, mas quando há um número considerável de pessoas dizendo que não funciona, não sou cobaia de teste, pois tem muito lixo na web e principalmente ferramentas gratuitas são um canal muito fácil para distribuir Virus, sem ninguém perceber.
Tópico encerrado , respostas não são mais permitidas