REGISTAR OCX
Bom... qlguem sabe como eu posso registrar uma OCX ou uma DLL, pelo VB.
algo do tipo... qndo cliacar em um botão, ele registar.
Eu tenho uma idéia disso, mais não sei se é o certo.
eu acho que pode-se utilizar o comando shell.execute, ou alguma coisa assim, e passa para ele os argumentos nessesários para registar a OCX ou DLL.
algo do tipo... qndo cliacar em um botão, ele registar.
Eu tenho uma idéia disso, mais não sei se é o certo.
eu acho que pode-se utilizar o comando shell.execute, ou alguma coisa assim, e passa para ele os argumentos nessesários para registar a OCX ou DLL.
Você pode registrar uma OCX ou DLL das seguintes formas.
1) Via linha de comando
Registrar: C:\WINNT\System32egsrv32.exe c:\winnt\system32\msinet.ocx
ou
Registrar em silent mode: C:\WINNT\System32egsrv32.exe /s c:\winnt\system32\msinet.ocx
Remover registro: C:\WINNT\System32egsrv32.exe /u c:\winnt\system32\msinet.ocx
2) Via Shell atraves do Visual Basic:
Registrar em silent mode: Shell "C:\WINNT\System32egsrv32.exe /s c:\winnt\system32\msinet.ocx", vbHide
Remover registro: Shell "C:\WINNT\System32egsrv32.exe /u c:\winnt\system32\msinet.ocx", vbHide
As próximas opções não funcionam com ActiveX !
Arquivos OCX e DLL que necessitam de registro possuem as APIS implicitas: DllRegisterServer e DllUnregisterServer e podem ser chamadas através do VB.
3) Registrar OCX ou DLL atraves do Visual Basic com declaração estática de APIs:
Option Explicit
Private Declare Sub DllRegisterServer Lib "c:\winnt\system32\msinet.ocx" ()
Private Declare Sub DllUnregisterServer Lib "c:\winnt\system32\msinet.ocx" ()
Public Sub Main()
DllRegisterServer
' Para remover o registro, use: DllUnregisterServer
End Sub
4) Registrar OCX ou DLL atraves do Visual Basic com execução dinà ¢mica de APIs:
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
Public Sub Main()
On Error Resume Next
Dim lb As Long, pa As Long
lb = LoadLibrary("c:\winnt\system32\msinet.ocx")
pa = GetProcAddress(lb, "DllRegisterServer")
' Para remover registro, use: pa = GetProcAddress(lb, "DllUnregisterServer")
CallWindowProc pa, App.hInstance, 100&, ByVal 0&, ByVal 0&
FreeLibrary lb
End Sub
Tópico encerrado , respostas não são mais permitidas