VERIFICANDO SE DLL/OCX ESTAO REGISTRADAS
Bom dia Pessoal
Preciso saber se uma dll/ ocx já está registrada no meu sistema (que não tem VB instalado).
Alguém pode me dar uma dica de como meu verificar esta situação via código ?
Muito obrigado !
Preciso saber se uma dll/ ocx já está registrada no meu sistema (que não tem VB instalado).
Alguém pode me dar uma dica de como meu verificar esta situação via código ?
Muito obrigado !
Voce verifica se a referida dll esta na pasta c:\windows\system32 caso esteja so fazer um registro usando regsvr32
em um módulo
Option Explicit
Public Function CheckMasked() As Long
On Error Resume Next
Dim Ctrl As Control
For Each Ctrl In form1 [ô] coloque aqui o formulário do componente
If TypeOf Ctrl Is MaskEdBox Then
Else
End If
Next
If Err.number = 0 Then
CheckMasked = 1
Else
CheckMasked = 0
Shell ([Ô]Regsvr32.exe MSMASK32.OCX[Ô])
End If
On Error GoTo 0
End Function
Public Function CheckSSTAB() As Long
On Error Resume Next
Dim Ctrl As Control
For Each Ctrl In form1 [ô] coloque aqui o formulário do componente
If TypeOf Ctrl Is SSTab Then
Else
End If
Next
If Err.number = 0 Then
CheckSSTAB = 1
Else
CheckSSTAB = 0
Shell ([Ô]Regsvr32.exe TABCTL32.OCX[Ô])
Shell ([Ô]Regsvr32.exe MSCOMCTL.OCX[Ô])
End If
On Error GoTo 0
End Function
Public Function Checkchameleonbutton() As Long
On Error Resume Next
Dim Ctrl As Control
For Each Ctrl In form1 [ô] coloque aqui o formulário do componente
If TypeOf Ctrl Is chameleonButton Then
Else
End If
Next
If Err.number = 0 Then
Checkchameleonbutton = 1
Else
Checkchameleonbutton = 0
Shell ([Ô]Regsvr32.exe CamaleonButton.ocx[Ô])
End If
On Error GoTo 0
End Function
Public Function testecomponentes()
[ô]
Select Case CheckMasked
Case 1
[ô] MsgBox [Ô]O componente Masked Edit está instalado[Ô], vbInformation, [Ô]OK[Ô]
Case 0
MsgBox [Ô]O componente Masked Edit não está instalado[Ô], vbCritical, [Ô]ERRO[Ô]
End Select
[ô]
Select Case CheckSSTAB
Case 1
[ô] MsgBox [Ô]O componente SSTAB Edit está instalado[Ô], vbInformation, [Ô]OK[Ô]
Case 0
MsgBox [Ô]O componente SSTAB Edit não está instalado[Ô], vbCritical, [Ô]ERRO[Ô]
End Select
[ô]
Select Case Checkchameleonbutton
Case 1
[ô] MsgBox [Ô]O componente CHAMELEONBUTTON Edit está instalado[Ô], vbInformation, [Ô]OK[Ô]
Case 0
MsgBox [Ô]O componente CHAMELEONBUTTON Edit não está instalado[Ô], vbCritical, [Ô]ERRO[Ô]
End Select
End Function
em um formulário
private sub command1_click
testecomponentes
end sub
Option Explicit
Public Function CheckMasked() As Long
On Error Resume Next
Dim Ctrl As Control
For Each Ctrl In form1 [ô] coloque aqui o formulário do componente
If TypeOf Ctrl Is MaskEdBox Then
Else
End If
Next
If Err.number = 0 Then
CheckMasked = 1
Else
CheckMasked = 0
Shell ([Ô]Regsvr32.exe MSMASK32.OCX[Ô])
End If
On Error GoTo 0
End Function
Public Function CheckSSTAB() As Long
On Error Resume Next
Dim Ctrl As Control
For Each Ctrl In form1 [ô] coloque aqui o formulário do componente
If TypeOf Ctrl Is SSTab Then
Else
End If
Next
If Err.number = 0 Then
CheckSSTAB = 1
Else
CheckSSTAB = 0
Shell ([Ô]Regsvr32.exe TABCTL32.OCX[Ô])
Shell ([Ô]Regsvr32.exe MSCOMCTL.OCX[Ô])
End If
On Error GoTo 0
End Function
Public Function Checkchameleonbutton() As Long
On Error Resume Next
Dim Ctrl As Control
For Each Ctrl In form1 [ô] coloque aqui o formulário do componente
If TypeOf Ctrl Is chameleonButton Then
Else
End If
Next
If Err.number = 0 Then
Checkchameleonbutton = 1
Else
Checkchameleonbutton = 0
Shell ([Ô]Regsvr32.exe CamaleonButton.ocx[Ô])
End If
On Error GoTo 0
End Function
Public Function testecomponentes()
[ô]
Select Case CheckMasked
Case 1
[ô] MsgBox [Ô]O componente Masked Edit está instalado[Ô], vbInformation, [Ô]OK[Ô]
Case 0
MsgBox [Ô]O componente Masked Edit não está instalado[Ô], vbCritical, [Ô]ERRO[Ô]
End Select
[ô]
Select Case CheckSSTAB
Case 1
[ô] MsgBox [Ô]O componente SSTAB Edit está instalado[Ô], vbInformation, [Ô]OK[Ô]
Case 0
MsgBox [Ô]O componente SSTAB Edit não está instalado[Ô], vbCritical, [Ô]ERRO[Ô]
End Select
[ô]
Select Case Checkchameleonbutton
Case 1
[ô] MsgBox [Ô]O componente CHAMELEONBUTTON Edit está instalado[Ô], vbInformation, [Ô]OK[Ô]
Case 0
MsgBox [Ô]O componente CHAMELEONBUTTON Edit não está instalado[Ô], vbCritical, [Ô]ERRO[Ô]
End Select
End Function
em um formulário
private sub command1_click
testecomponentes
end sub
[txt-color=#0000f0]Option Explicit[/txt-color]
[txt-color=#007100][ô]fazer o references (project->References) para a biblioteca Type Library Information[/txt-color]
[txt-color=#0000f0]Const[/txt-color] HKEY_CLASSES_ROOT = &H80000000
[txt-color=#007100][ô]Const HKEY_LOCAL_MACHINE = &H80000002[/txt-color]
[txt-color=#0000f0]Private Declare Function[/txt-color] RegCloseKey [txt-color=#0000f0]Lib[/txt-color] [Ô]advapi32.dll[Ô] ([txt-color=#0000f0]ByVal[/txt-color] hKey [txt-color=#0000f0]As Long[/txt-color]) [txt-color=#0000f0]As Long[/txt-color]
[txt-color=#0000f0]Private Declare Function[/txt-color] RegOpenKey [txt-color=#0000f0]Lib[/txt-color] [Ô]advapi32.dll[Ô] [txt-color=#0000f0]Alias[/txt-color] [Ô]RegOpenKeyA[Ô] ([txt-color=#0000f0]ByVal[/txt-color] hKey [txt-color=#0000f0]As Long[/txt-color], [txt-color=#0000f0]ByVal[/txt-color] lpSubKey [txt-color=#0000f0]As String[/txt-color], phkResult [txt-color=#0000f0]As Long[/txt-color]) [txt-color=#0000f0]As Long[/txt-color]
[txt-color=#0000f0]Function[/txt-color] IsRegComp(hKey [txt-color=#0000f0]As Long[/txt-color], strPath [txt-color=#0000f0]As String[/txt-color]) [txt-color=#0000f0]As Boolean[/txt-color]
[txt-color=#0000f0]Dim[/txt-color] Ret [txt-color=#0000f0]As Long[/txt-color]
[txt-color=#007100][ô]Open the key[/txt-color]
RegOpenKey hKey, strPath, Ret
IsRegComp = [txt-color=#0000f0]IIf[/txt-color](Ret > 0, [txt-color=#0000f0]True[/txt-color], [txt-color=#0000f0]False[/txt-color])
[txt-color=#007100][ô]Close the key[/txt-color]
RegCloseKey Ret
[txt-color=#0000f0]End Function[/txt-color]
[txt-color=#0000f0]Private Sub [/txt-color]Command1_Click()
[txt-color=#0000f0]Dim[/txt-color] vGuid [txt-color=#0000f0]As String[/txt-color]
[txt-color=#0000f0]Dim[/txt-color] tip [txt-color=#0000f0]As[/txt-color] TLIApplication
[txt-color=#0000f0]Set[/txt-color] tip = [txt-color=#0000f0]New[/txt-color] TLIApplication
vGuid = tip.TypeLibInfoFromFile([Ô]C:\SerialHD.dll[Ô]).Guid
[txt-color=#0000f0]Set[/txt-color] tip = [txt-color=#0000f0]Nothing[/txt-color]
[txt-color=#0000f0]If[/txt-color] IsRegComp(HKEY_CLASSES_ROOT, [Ô]TypeLib\[Ô] & vGuid) [txt-color=#0000f0]Then[/txt-color]
MsgBox [Ô]Componente (Ocx/Dll) registrado![Ô]
[txt-color=#0000f0]Else[/txt-color]
MsgBox [Ô]Componente (Ocx/Dll) não registrado![Ô]
[txt-color=#0000f0]End If[/txt-color]
[txt-color=#0000f0]End Sub[/txt-color]
[txt-color=#007100][ô][/txt-color][txt-color=#e80000]ATENÇÃO:[/txt-color] [txt-color=#007100]Observe que informei o local do arquivo [Ô]C:\SerialHD.dll[Ô], pois o mesmo não encontra-se na pasta System32, caso contrário, não será necessário informar o Path do arquivo.[/txt-color]
Atenciosamente,
Fabio Araujo Damascena
[txt-color=#007100][ô]fazer o references (project->References) para a biblioteca Type Library Information[/txt-color]
[txt-color=#0000f0]Const[/txt-color] HKEY_CLASSES_ROOT = &H80000000
[txt-color=#007100][ô]Const HKEY_LOCAL_MACHINE = &H80000002[/txt-color]
[txt-color=#0000f0]Private Declare Function[/txt-color] RegCloseKey [txt-color=#0000f0]Lib[/txt-color] [Ô]advapi32.dll[Ô] ([txt-color=#0000f0]ByVal[/txt-color] hKey [txt-color=#0000f0]As Long[/txt-color]) [txt-color=#0000f0]As Long[/txt-color]
[txt-color=#0000f0]Private Declare Function[/txt-color] RegOpenKey [txt-color=#0000f0]Lib[/txt-color] [Ô]advapi32.dll[Ô] [txt-color=#0000f0]Alias[/txt-color] [Ô]RegOpenKeyA[Ô] ([txt-color=#0000f0]ByVal[/txt-color] hKey [txt-color=#0000f0]As Long[/txt-color], [txt-color=#0000f0]ByVal[/txt-color] lpSubKey [txt-color=#0000f0]As String[/txt-color], phkResult [txt-color=#0000f0]As Long[/txt-color]) [txt-color=#0000f0]As Long[/txt-color]
[txt-color=#0000f0]Function[/txt-color] IsRegComp(hKey [txt-color=#0000f0]As Long[/txt-color], strPath [txt-color=#0000f0]As String[/txt-color]) [txt-color=#0000f0]As Boolean[/txt-color]
[txt-color=#0000f0]Dim[/txt-color] Ret [txt-color=#0000f0]As Long[/txt-color]
[txt-color=#007100][ô]Open the key[/txt-color]
RegOpenKey hKey, strPath, Ret
IsRegComp = [txt-color=#0000f0]IIf[/txt-color](Ret > 0, [txt-color=#0000f0]True[/txt-color], [txt-color=#0000f0]False[/txt-color])
[txt-color=#007100][ô]Close the key[/txt-color]
RegCloseKey Ret
[txt-color=#0000f0]End Function[/txt-color]
[txt-color=#0000f0]Private Sub [/txt-color]Command1_Click()
[txt-color=#0000f0]Dim[/txt-color] vGuid [txt-color=#0000f0]As String[/txt-color]
[txt-color=#0000f0]Dim[/txt-color] tip [txt-color=#0000f0]As[/txt-color] TLIApplication
[txt-color=#0000f0]Set[/txt-color] tip = [txt-color=#0000f0]New[/txt-color] TLIApplication
vGuid = tip.TypeLibInfoFromFile([Ô]C:\SerialHD.dll[Ô]).Guid
[txt-color=#0000f0]Set[/txt-color] tip = [txt-color=#0000f0]Nothing[/txt-color]
[txt-color=#0000f0]If[/txt-color] IsRegComp(HKEY_CLASSES_ROOT, [Ô]TypeLib\[Ô] & vGuid) [txt-color=#0000f0]Then[/txt-color]
MsgBox [Ô]Componente (Ocx/Dll) registrado![Ô]
[txt-color=#0000f0]Else[/txt-color]
MsgBox [Ô]Componente (Ocx/Dll) não registrado![Ô]
[txt-color=#0000f0]End If[/txt-color]
[txt-color=#0000f0]End Sub[/txt-color]
[txt-color=#007100][ô][/txt-color][txt-color=#e80000]ATENÇÃO:[/txt-color] [txt-color=#007100]Observe que informei o local do arquivo [Ô]C:\SerialHD.dll[Ô], pois o mesmo não encontra-se na pasta System32, caso contrário, não será necessário informar o Path do arquivo.[/txt-color]
Atenciosamente,
Fabio Araujo Damascena
Obrigado FADSYSTEM
Funcionou.
Abaço a todos
Funcionou.
Abaço a todos
Tópico encerrado , respostas não são mais permitidas