Newsgroup: it.comp.lang.visual-basic
Titolo: SHELL e REGSVR32

Salve
sto provando a registrare controlli con REGSVR32 direttamente da codice VB.
Tutto funziona.
La domanda č:
c'č un modo per sapere da programma se l'operazione di
registrazione(trasparente) č avvenuta regolarmente e senza intoppi?
Io uso queste istruzioni:
    Dim RetVal
    reg = "regsvr32.exe /s c:\windows\system\pippo.ocx"
    RetVal = Shell(reg)
Il /s mi permette di evitare il messaggio.
grazie, maurizio

[*maumao* = 
mau...@vfc.it
 in
news:b8eHb.215108$
e6.82...@twister2.libero.it
] ha scritto:

Per la Shell vedi la guida (genera un errore se non va a buon fine, quindi
basta un On Error ...), per RegSvr32 non ho guardato, ma la guida lo cita
sotto "REGSVR32, Using", con "Insieme completo", ma il CD di MSDN, anzi, il
DVD, ormai non si scolla piů dal drive, vero? ;-)

 registrazione(trasparente) č avvenuta regolarmente e senza intoppi?
Puoi provare, anzichč passare per la shell, a usare la
DLLregisterServer()/DLLUnregisterServer()
' *** Esempio tratto da 
www.allapi.net
' Add 2 Commandbuttons and a textbox to the form, and paste this code into
the form
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
Private Sub Form_Load()
    Text1.Text = "C:\WINDOWS\SYSTEM\COMCTL32.OCX"
    Command1.Caption = "Register server"
    Command2.Caption = "Unregister server"
End Sub
Private Sub Command1_Click()
    Call RegisterServer(Me.hWnd, Text1.Text, True)
End Sub
Private Sub Command2_Click()
    Call RegisterServer(Me.hWnd, Text1.Text, False)
End Sub
Public Function RegisterServer(hWnd As Long, DllServerPath As String,
bRegister As Boolean)
    On Error Resume Next
'KPD-Team 2000
'URL: 
http://www.allapi.net/
'E-Mail: KPD...@Allapi.net
'We're going to call an API-function, without declaring it!
' Modified by G. Kleijer
' 
gkle...@casema.net
' going to call the DllRegisterServer/DllUnRegisterServer API of the
specified library.
' there's no need to use the Regsvr32.exe anymore.
' Make sure the path is correct and that the file exists, otherwise VB will
crash.
    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") + "
Successful"
    Else
        MsgBox IIf(bRegister = True, "Registration", "Unregistration") + "
Unsuccessful"
    End If
    'unmap the library's address
    FreeLibrary lb
End Function
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

[*Lupo* = 
LupoOrmaiR...@libero.it
 in
news:bsjrkm$df3m5$
1...@ID-174464.news.uni-berlin.de
] ha scritto:
...
Dopo il post di Zanna, puoi anche prendere spunto da ESP0EASY.VBP...

 ha scritto nel messaggio
news:b8eHb.215108$e6.82...@twister2.libero.it...
