Newsgroup: it.comp.lang.visual-basic
Titolo: registrazione dll

Scusate,
abbandoniamo la politica! :)
Ho realizzato un file batch per registrare delle dll, con le righe:
regsvr32 /s dao360.dll
ecc...
1) vorrei inserire via codice nel mio programma un controllo che mi
verifichi se le dll in questione sono già registrate, ed in caso contrario
provveda a richiamare il  batch registrarle.
E' possibile?
E se si (nn fate i fubbini!) come si fa? Devo ravanare nel registro credo,
ma come? dove vado a cercare?
2) sarebbe possibile fare in modo che il programma generi al volo il batch
con dentro solo i richiami alle dll necesarie e che poi lo mandi in
esecuzione? E se si come?
Mi basta qualche accenno eh, non pretendo che mi scriviate tutto sia chiaro
:)
Grazie e ciao
P.S. spero che dicendo la mia non mi sia fatto troppi nemici :D

P.S. spero che dicendo la mia non mi sia fatto troppi nemici :D
Caso mai si cerchera' di redimerti :-P
-- 
ciao, hal

 Caso mai si cerchera' di redimerti :-P
Perchè?
Dai, ognuno la pensi come vuole. L'importante è il rispetto no?
Grazie per le dritte hal
Ciao

 Mi cercherò gli esempi sul sito omune.
Mi sono spulciate tutte e 34 le pagine con i sorgenti e anche le 10 dei
binari.
Non sono stato in grado di trovare nulla, mi spiace.
Non è che ti ricordi come si chiama l'esempio?
Ho provato a fare delle ricerche, ma sempre "nessun record"...
Grazie ancora

> Mi cercherň gli esempi sul sito omune.
			^^^^^^^^^^^^^^^^^^
Una ricerca su 
groups.google.com
 per DllRegisterserver su iclvb _non_
puo' negare risultati.
-- 
ciao, hal

 ha scritto nel messaggio
news:bpvp3vohorendbdrt...@4ax.com...

Pure tu hai ragione.
Me e sta maledetta abitudine di consultare il NG solo tramite il client.
Posso farti un'altra piccola domanda?
Se faccio l'installer con INNOSetup, le dll vengono registrate
automatcamente?
Grassie...

 Grassie...
Ok f1 e si risolvono i problemi.
Ho spulciato la guida di InnoSetup e ho trovato qualcosina. Adesso stavo
provando ad usare questa stringa, che ne pensate?
Source: "C:\percorso\nome.dll"; DestDir: "{app}"; Flags: regserver
sharedfile regtypelib
i flags sono messi bene? o li sto usando a muzzo?
E soprattutto va bene se ad esempio la dao360.dll la lascio nella dir
dell'applicazione?
Ciao

 ma come? dove vado a cercare?
Set obj = CreateObject(classe)
Se va in errore non č registrata.

dell'applicazione?
Secondo me la dao360.dll va installata con MDAC o quel che e', che
ci pensa lui a metterla al posto giusto.
Altrimenti aspettiamoci poi messaggi di gente che non capisce
perche' i programmi smettono di funzionare improvvisamente.
Per quanto concerne la registrazione da codice, nel caso
non l'avessi ancora trovato, ti posto il codice di regsvr32.exe
se fosse scritto in vb ;-)
<codice>
Option Explicit
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 FreeLibrary Lib "kernel32" ( _
                                    ByVal hLibModule As Long _
                                    ) 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
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' PARAMETERS:
'	a_filename      fullpathname dell' activex da registrare
'	a_flagRegister  TRUE registra, FALSE deregistra
'
Public Function RegistraActiveX(ByVal a_filename As String, _
                                ByVal a_flagRegister As Boolean _
                                ) As Boolean
    Dim hLib As Long            '// handle alla libreria ActiveX
    Dim hProc As Long           '// handle alla funzione
DllRegisterServer
    Dim lpProcName As String    '// nome della funzione esportata
dalla
dll
 
    '// cerca di caricare l'activeX
    hLib = LoadLibrary(a_filename)
    If (hLib = 0) Then Exit Function
 
    '// verifica se e' un ActiveX registrabile
    '// attenzione perche' il nome della funzione
    '// e' case sensitive
    If (a_flagRegister) Then
        lpProcName = "DllRegisterserver"
    Else
        lpProcName = "DllUnregisterserver"
    End If
    hProc = GetProcAddress(hLib, lpProcName)
    If (hProc = 0) Then
        FreeLibrary (hLib)
        Exit Function
    End If
 
    '// "sporco trucco" in vb per chiamare una funzione di cui
    '// si ha l' indirizzo
    RegistraActiveX = (ERROR_SUCCESS = _
                    CallWindowProc(hProc, 0&, 0&, 0&, 0&))
 
    FreeLibrary (hLib)
End Function    '// RegistraActiveX
</codice>
-- 
hth, hal

Allora, ho creato sto benedetto pacchetto di installazione.
Sul mio sistema funzioan tutto perfettamente, il programma va anche su altri
pc senza access installato.
E' stato sufficiente (anche sotto XP) registrare manualmente la libreria
dao360.dll
Ma c'è un pc con sistema biprocessore, e win2k senza access, nel quale non
ne vuol sapere di funzionare.
Mi da sempre questo errore:
Classe non registrata
si sta cercando l'oggetto CLSID:{00000010-0000-0010-8000-00AA006D2EA4}
Questa sleppa corrisponde al DAO.DBEngine.35 come leggo nel mio registro di
sistema.
Dal momento che la dll dao360 è installata e registrata, cos'è che manca?
Qualcuno ha avutpo la stessa esperienza e può aiutarmi?
Grazie

 Dal momento che la dll dao360 č installata e registrata, cos'č che manca?
Aggiornamento. Questo errore sono riuscito ad eliminarlo registrando la
dao350.dll
ma adesso ne č spuntato unaltro. Errore 523 errore di accesso ai dati
Che roba č?
Grazie

 ha scritto nel messaggio
news:rof%9.11791$YL4....@tornado.fastwebnet.it...

Ho cercato su googlecome un disperato, e quello che son riuscito a trovare č
solo:
Data Access Error (Error 525)
See Also
A Data Access Object error has occurred that was not specifically trapped.
Beh che era un errore lo avevo capito, e anche che non era "trapped". Io
volevo sapere pure come poterlo risolvere.
Si accettano suggerimenti e mazzulamenti :)
Ciao

 > ma adesso ne è spuntato unaltro. Errore 523 errore di accesso ai dati
Devi utilizzare MDAC per installare i componenti per utlizzare DAO o ADO.
Non fare manualmente un pacchetto artigianale, vai incontro ad una serie di
problemi che neanche ti immagini..
Basta scaricare dal sito della mamma M$ mdac_type.exe e fare doppio click...
Ciao
oZ