Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Shelliä ja Regsvr32sta

Arttut02 [15.07.2004 15:56:16]

#

(VB6)Rekisteröin shelliä käyttäen ocx ja dll -tiedostoja (regsvr32...).
Kuinka saisin tiedon, jos rekisteröintiä ei ole suoritettu? Shellihän palauttaa arvon, joka kertoo onko tehtävä suoritettu onnistuneesti.. Se ei kuitenkaan tässä tilanteessa auta, jos regsvr32:ssa tapahtuu virhe.. tai ainakin niin oletan.

Tiha [18.07.2004 13:32:01]

#

Tässä API esimerkki rekisteröinnistä

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

Private Sub Form_Load()
        Call RegisterServer(Me.hWnd, "c:\oma.ocx", True)
End Sub
Public Function RegisterServer(hWnd As Long, DllServerPath As String, bRegister As Boolean)
    On Error Resume Next
    'Tarkista onko olemassa muuten kaatuu...
    ie = -5
    ie = GetAttr(DllServerPath)
    If ie >= 0 Then

    Dim lb As Long, pa As Long
    lb = LoadLibrary(DllServerPath)
    If bRegister Then
        pa = GetProcAddress(lb, "DllRegisterServer")
    Else
        pa = GetProcAddress(lb, "DllUnregisterServer")
    End If

    If CallWindowProc(pa, hWnd, ByVal 0&, ByVal 0&, ByVal 0&) = ERROR_SUCCESS Then
        MsgBox IIf(bRegister = True, "Registration", "Unregistration") + " Onnistui"
   Else
        MsgBox IIf(bRegister = True, "Registration", "Unregistration") + " Epäonnistui"
    End If
    FreeLibrary lb
    Else
    MsgBox ("Tiedostoa ei olemassa")
    End If

End Function

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta