REGISTRAR OCX WINDOWS 7

ROBSON 20/05/2010 23:12:37
#342349

Pessoal como se deve registrar manualmente uma OCX no Windows 7 ?

No Windows XP eu costumo usar o Access para registrar controles Active X, mas o Win 7 parece que nao dá certo. Pelo menos eu tentei com o Access 2003 no windows 7
YHIZSRHAELL 21/05/2010 13:10:11
#342395
pode escrever o comando diretamente na barra de pesquisar do menu iniciar ou pressionando winkey (o logo do windows) + r que é o menu iniciar.

Se ainda está habilitado o uac (controle de contas do usuário), sugiro que o desabilite no painel de controle, é chato ter q dar permissão de administrador para tudo aff.

se vc precisar registrar muitas dlls sugiro que crie um script de comandos en lote, ou seja um arquivo bat ou cmd

digite no bloco de notas o comando de registro de cada dll ou ocx uma em cada linha, e salve ou renomei o txt com extensão .bat ou .cmd

PAYDANA 21/05/2010 14:05:12
#342407
desculpe qqr coisa
mais se o cara faz a pergunta em um forum de programação
obviamente q ele quer a resposta via codigo
to errado?
MSMJUDAS 21/05/2010 14:14:23
#342409
Citação:

:
desculpe qqr coisa
mais se o cara faz a pergunta em um forum de programação
obviamente q ele quer a resposta via codigo
to errado?




Acho que está.

Ele pediu como registrar MANUALMENTE uma OCX no WIN 7
YHIZSRHAELL 21/05/2010 14:42:12
#342414
Tem gente q não presta atenção no que está escirto.

Mas já que o colega quer via código


Option Explicit
Private Declare Function FreeLibrary Lib [Ô]kernel32[Ô] (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib [Ô]kernel32[Ô] Alias [Ô]LoadLibraryA[Ô] (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib [Ô]kernel32[Ô] (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib [Ô]user32[Ô] Alias [Ô]CallWindowProcA[Ô] (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Private Const ERROR_SUCCESS = &H0

Public Function RegistrarComponente(hWnd As Long, LibreriaDeseada As String, Registrar As Boolean) As Boolean
Dim libAddress As Long, procAddress As Long

[ô] Obtener la direccion de la libreria indicada
libAddress = LoadLibrary(LibreriaDeseada)
If libAddress = 0 Then
RegistrarComponente = False
Exit Function
End If

[ô] Obtener de la libreria, la direccion del server para Registrar o DesRegistrar
If Registrar Then
procAddress = GetProcAddress(libAddress, [Ô]DllRegisterServer[Ô])
Else
procAddress = GetProcAddress(libAddress, [Ô]DllUnregisterServer[Ô])
End If
[ô] Ejecutar el Registro/DesRegistro de la libreria

If CallWindowProc(procAddress, hWnd, ByVal 0&, ByVal 0&, ByVal 0&) = ERROR_SUCCESS Then
RegistrarComponente = True
Else
RegistrarComponente = False
End If

[ô] Liberar la libreria utilizada
FreeLibrary libAddress

End Function


Un TextBox para especificar la ruta y nombre del OCX/DLL deseados
[ô] Verifica que el archivo deseado exista y su ruta este correcta
[ô] Command1 para registrar el componente
[ô] Command2 para desregistrar el componente
Private Sub Form_Load()
Text1.Text = [Ô]C:\WINDOWS\SYSTEM32\COMCTL32.OCX[Ô]
Command1.Caption = [Ô]Registrar[Ô]
Command2.Caption = [Ô]DesRegistrar[Ô]
End Sub
Private Sub Command1_Click()
If RegistrarComponente(Me.hWnd, Text1.Text, True) Then
MsgBox [Ô]El componente se registro exitosamente[Ô]
Else
MsgBox [Ô]Ha fallado el registro del componente[Ô]
End If
End Sub
Private Sub Command2_Click()
If RegistrarComponente(Me.hWnd, Text1.Text, False) Then
MsgBox [Ô]El componente se des-registro exitosamente[Ô]
Else
MsgBox [Ô]Ha fallado el des-registro del componente[Ô]
End If
End Sub

fonte: http://www.canalvisualbasic.net/foro/visual-basic-6-0/registrar-ocx-11009/
ROBSON 21/05/2010 15:03:32
#342419
Ola pessoal, obrigado pelas respostas,
Na verdade eu não queria via codigo mas manualmente.
Para registrar um grande numero de Ocx dll eu uso o proprIo programa de instalaçao.

Minha dúvida era justamente um registro em individual. pois eu acrescentei um cotrole que precisa do registro da OCX e eu tenho que enviar pela net a ocx e dar a orientação para o cliente para apenas o registro desta OCX em especial.

Nos proximos programas que distribuir esta OCX ja irá embutida no programa de instalaçao.

att
Robson PB
YHIZSRHAELL 21/05/2010 15:21:55
#342420
Se é só isso é a primeira resposta =D

Mas pq vc não compacta a ocx junto com o script, extrai ambos para a pasta temp, programa, ou system32, que seja , no script registra a dll ou usa o gerador de instalação somente com a dll ou demais atualizações q vc tenha q fazer, fica mais pratico q compactar com winrar.

Dessa forma, seu cliente não vai ter q quebrar a cabeça, se for leigo, tendo que executar prompt de comando com administrador, ou desabilitar uac, registrando manualmente. Vc sabe como clientes são folgados, querem tudo à mão. Aliás esse é o mal de brasileiro (ainda bem que não sou um).. kkk mentira.

ROBSON 21/05/2010 21:46:15
#342478

1. Ola YHIZSRHAEL vcoe tem razao; os clientes sao bem acomodados; querem tudo simplificado por nesta atualizacao eu mando um pequeno tutorial passo-a-passo.

2. A solucao mais simples e rápida para o meu problema é esta do Barros; so que eu testei no XP e funciona sem problemas mas no Windows 7 surge a mensagem abaixo. Se alguem quizer bastar tentar simular com qualquer outra OCX.

A mesagem de erro é esta:
[Ô]Erro ao carregar o modulo xxx nome da OCX...

YHIZSRHAELL 21/05/2010 22:31:00
#342482
Tudo bem, se vc acha mais simples assim. =D

Vc poderia postar tua ocx, pq testei varias aqui proprias do windows ou de programas de terceiros instaladas no meu pc com windows 7 ultimate x64 não houve problemas.
Posta aí pra gente testar aqui.
XXXANGELSXXX 21/05/2010 23:14:06
#342484
amigo, joga a dll na pasta system32 de 2 cliques na ocx, peça para associar com um programa. localize o executavel REGSVR32 que fica dentro da pasta system32 tb.. pronto.. ocx registrada.
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas