Newsgroup: it.comp.lang.visual-basic
Titolo: Registrazione OCX su Windows Vista

Salve!
Fino ad adesso ho usato il seguente VBS per registrare gli OCX
presenti in una determinata cartella:
**************************************************************************************************************
' --- Verifica i Parametri in Input ---
MsgBox WScript.dir, vbOKOnly + vbCritical, MsgErrBoxTitle
Set Arguments = WScript.Arguments
Select Case Arguments.Count
Case 0
	 OcxFileDir = "percorso della cartella in cui sono presenti gli OCX
da registrare"
Case 1
	OcxFileDir = Arguments(0)
Case Else	' Numero di Parametri Errato
	MsgBox ErrMsg0001, vbOKOnly + vbCritical, MsgErrBoxTitle
	WScript.Quit
End Select
SysDir = FSysObj.GetSpecialFolder(1) '// Directory System
Err.Clear
Set FDir = FSysObj.GetFolder(OcxFileDir)
If Err.Number <> 0 Then
	MsgBox ErrMsg0013, vbOKOnly + vbCritical, MsgErrBoxTitle
	WScript.Quit
End If
Set OcxReggedNumber = 0
Set OcxReggedString = "Active-X registrati:"
Set FList = FDir.Files
For Each OcxFile in FList
	If UCase(FSysObj.GetExtensionName(OcxFile)) = "OCX" Then
		Err.Clear
		WSHShell.Run SysDir & "\RegSvr32.exe " & OcxFile & " /S", 1, True
		If Err.Number <> 0 Then
      		MsgBox ErrMsg0014, vbOKOnly + vbCritical, MsgErrBoxTitle
      		WScript.Quit
		End If
		OcxReggedNumber = OcxReggedNumber + 1
		OcxReggedString = OcxReggedString & CRLF & OcxFile
	End If
Next
If OcxReggedNumber = 0 Then 'Nessun Active-X registrato
	MsgBox "Nessun Active-X da registrare in " & OcxFileDir, vbOKOnly +
vbInformation, MsgInfBoxTitle
Else ' Active-X registrati
	MsgBox "Registrati " & CStr(OcxReggedNumber) & " Active-X." & CRLF &
OcxReggedString, vbOKOnly + vbInformation, MsgInfBoxTitle
End If
**************************************************************************************************************
Il problema sta nell'istruzione:
WSHShell.Run SysDir & "\RegSvr32.exe " & OcxFile & " /S", 1, True
Ovvero, il lancio della registrazione non viene fatta con i necessari
privilegi...
Ho tovato una soluzione "manuale" per questo problema... ovvero ho
fatto un file BAT (*.cmd):
regsvr32.exe "percorso della cartella in cui sono presenti gli
OCX"\Ocx#1.ocx
regsvr32.exe "percorso della cartella in cui sono presenti gli
OCX"\Ocx#2.ocx
regsvr32.exe "percorso della cartella in cui sono presenti gli
OCX"\Ocx#3.ocx
...
...
...
regsvr32.exe "percorso della cartella in cui sono presenti gli
OCX"\Ocx#n.ocx
Quindi eseguo il file BAT con tasto destro del mouse, selezionando la
voce "Esegui come amministratore".
Nel mio caso però questa soluzione NON è accetabile!
Grazie, Samu.

 Nel mio caso però questa soluzione NON è accetabile!
Potresti spiegare l'esatto motivo per cui non la ritieni accettabile?
Bye
Raf

 ha scritto
Salve!
Fino ad adesso ho usato il seguente VBS per registrare gli OCX
presenti in una determinata cartella:
' --- Verifica i Parametri in Input ---












Grazie, Samu.
------------------
che cosa complicata. quando reinstallo vb sul pc di turno, uso banalmente 
questo bat, dalla cartella che contiene i pochi ocx che uso:
copy ccrpftv.dep c:\windows\system32
copy ccrpftv6.ocx c:\windows\system32
...
regsvr32 ccrpftv.ocx
regsvr32 ccrpftv6.ocx
...
pause
e ha funzionato beatamente anche su vista (uac disabled).
sto rivalutando molto i bat, da quando un programma di bkp in rete che mi 
sarebbe costato almeno un po' di tempo l'ho risolto in 30" con xcopy /s /d 
/y. sto regredendo?
ciao, a.

 sto regredendo?
No, stai progredendo.
Anzi, sei al terzo stadio di Advanced Geekiness :-).
Come prossima lezione, hai un mese e mezzo per leggere
tutte le vignette di Userfriendly.org. In seguito passeremo a
XKCD. Adesso di corsa a studiare, e guarda che interrogo !
Bye, G. 

 e ha funzionato beatamente anche su vista (uac disabled).
La procedura manuale a cui sono giunto è del tutto simile alla
soluzione da te proposta...
Comunque il problema rimane, visto che non posso disabilitare l'UAC
nelle postazioni con Vista.
Mi accontenterò della soluzione... tasto destro ed "Esegui come
amministratore".. che purtroppo non può essere automatizzata.

Comunque il problema rimane, visto che non posso disabilitare l'UAC
nelle postazioni con Vista.
Mi accontenterņ della soluzione... tasto destro ed "Esegui come
amministratore".. che purtroppo non puņ essere automatizzata.
non ne sono sicuro
google > vista run as administrator automate
ho solo scorso ma qualche idea forse c'e'.
ciao, a.


Se può esserti utile, in un programma VB6 in cui avevo la tua medesima 
esigenza, sono riuscito a limitare il problema facendo automaticamente 
saltare fuori il dialogo di conferma esecuzione come admin subito prima 
dell'invocazione di regsvr32.
Va detto però che la soluzione prevede l'uso di alcune API, quindi non è 
adattabile ad uno script...
Bye
Raf 

 ho solo scorso ma qualche idea forse c'e'.
Interessante... farò alcune prove!
Grazie, Samu.