Newsgroup: it.comp.lang.vo-clipper
Titolo: regsvr32 e Vista







Per registrare l'OCX di Report Pro o altro OCX da 
programma scrivevo:


oApp:Run([regsvr32 
"]+WorkDir()+[rpRT308.DLL])


Sotto Vista, per il discorso dei diritti utente non 
funziona più. Qualche idea?


Grazie


Danilo


 



 ha scritto 
  nel messaggio 
news:45b79ff7$0$19475$4faf...@reader5.news.tin.it
...


 wrote in 
  message 
news:45b85225$0$16388$4faf...@reader4.news.tin.it
...


 ha scritto 
  nel messaggio 
news:45b869ac$0$30018$4faf...@reader1.news.tin.it
...


 wrote in 
  message 
news:45b8a249$0$3204$4faf...@reader3.news.tin.it
...


Ciao Danilo io la DLL di Report Pro la registro in fase di installazione del 
programma uso Inno Setup
e la riga di comando che uso nel file di Inno Setup è questa:
Source: "C:\RP38\rpRT308.DLL"; DestDir: "{app}"; Permissions: everyone-full; 
Flags: ignoreversion sharedfile regtypelib


Si anch'io, ma a volte può essere comodo fare una copia brutale della 
cartella del programma e quindi l'applicazione deve essere in grado di 
registrare l'OCX per conto suo:
// controllo se è registrato //
cFile := 
GetStringFromReg(HKEY_CLASSES_ROOT,"CLSID\{7610B471-BE49-11D0-877E-00609726A5CE}","InProcServer32","" 
 )
// se non lo è //
IF Empty(cFile) .OR. !File(cFile) .OR. !Instr("RPRT308.DLL",Upper(cFile))
IF File(CurrentPath()+"rpRT308.DLL") // sono in ambiete di utilizzo //
oWindow:oApp:Run(WindowsSistemDirectory()+[\regsvr32 
"]+CurrentPath()+[rpRT308.DLL"])
ELSEIF File("c:\cavo27\bin\rpRT308.DLL") // sono sul mio PC (sviluppo) //
oWindow:oApp:Run(WindowsSistemDirectory()+"\regsvr32 
"+"c:\cavo2741\bin\rpRT308.DLL")
ENDIF
ENDIF

 e la riga di comando che uso nel file di Inno Setup è questa:
Anche io uso Inno Setup e lo ringrazio infinitamente di evitarmi il 
contatto con i casini che ogni volta Microsoft fa tra una versione e 
l'altra :)
-- 
===============================================================
Alberto Rubinelli - A2 SISTEMI 
news.bbip.it
 ThunderBird 1.5.0.9
Via Costantino Perazzi 22 - 28100 NOVARA - ITALY
Tel 0321 640149   Fax 0321 391769   BBS 0321 392320
Mail: 
alb...@oldcomputers.de
skype: albertorubinelli  ICQ : 49872318
Visita il mio museo di computers: 
http://www.oldcomputers.it
===============================================================

Si ragazzi, (posso usare ragazzi vero?) il problema con InnoSetup sotto 
Vista non si pone, ma se, come dicevo, il cliente cambia Pc, ovviamente non 
si ritrova il CD di installazione che gli hai lasciato, ovviamente ha una 
connessione Internet che più lenta non si può, cosa gli facevo fare:
copia la cartella c:\programmi\miaapplicazione sul nuovo PC e avvia 
l'applicazione.
Sotto XP cosa facevo, all'avvio l'applicazione controllava se era registrato 
l'OCX e se no l'applicazione eseguiva una run di regsvr32 quindi l'OCX 
veniva registrato. Sotto Vista non si può più fare perchè l'utente, ancorchè 
amministratore del PC, per motivi di sicurezza è sempre connesso come utente 
normale e quindi non può ne installare ne registare OCX; infatti quando fai 
un setup ti viene un avviso che più o meno dice: hai chiesto di installare 
la tal applicazione vuoi che ti promuovo amministratore, se rispondi OK 
tutto funziona.
Mi chiedo come è possibile simulare la stessa cosa da programma.
Esiste un comando presente anche in XP "runas.exe" ma non ho capito se mi 
può essere utile.
Danilo