Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    registrazione controlli ocx

    Se in un form si usano dei controlli ocx come si può farli funzionare su un PC dove non è installato vb6?
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,462

    Moderazione

    Per parlare di VB6, esiste il subforum apposito:
    Visual Basic e .Net Framework.

    Sposto la discussione lì, ma fai più attenzione in futuro e non dimenticarti di specificare linguaggio e versione anche nel titolo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Per un ocx dovrebbe bastare copiare il file Nome.OCX sotto la cartella WinXX\System32.

  4. #4
    I controlli OCX vanno registrati nel Registry di Windows. Non è sufficiente metterli nella directory System o System32. Ai tempi del VB3, quando esistevano i VBX, era possibile usare una libreria aggiuntiva semplicemente mettendola nella cartella dell'eseguibile. Purtroppo, l'avvento delle librerie a 32 bit ha complicato le cose.
    http://www.espositosoftware.it

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,462
    Originariamente inviato da esposito
    Purtroppo, l'avvento delle librerie a 32 bit ha complicato le cose.
    Oddio, la complicanza è dovuta al fatto che i controlli ActiveX avevano e hanno altre prerogative rispetto ai vecchi VBX, come l'utilizzo all'interno di pagine web, l'istanziamento da parte di server (o scripting), tutte funzionalità che poi sono divenute fruibili da Visual Basic soppiantando di fatto i controlli VBX in favore di nuove possibilità.

    La registrazione è un'operazione necessaria per poter rendere il controllo reperibile globalmente all'interno della macchina e poter consentire ad amministratori di controllarne il funzionamento.

    La "complicazione" non è gratuita, per puro gusto di farsi del male, ma necessaria affinchè i controlli ActiveX svolgano tutte le funzionalità di cui erano privi i controlli VBX.

    Non è un semplice porting a 32bit dei controlli a 16bit.

    Ciao a tutti!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Originariamente inviato da esposito
    I controlli OCX vanno registrati nel Registry di Windows. Non è sufficiente metterli nella directory System o System32. Ai tempi del VB3, quando esistevano i VBX, era possibile usare una libreria aggiuntiva semplicemente mettendola nella cartella dell'eseguibile. Purtroppo, l'avvento delle librerie a 32 bit ha complicato le cose.
    volendo puoi anche sfruttare l'isolation level.

    se hai nomefile.exe basta creare una cartella nello stesso posto chiamata nomefile.exe.local

    A questo punto puoi mettere in questa nella stessa cartella dell'exe tutti i file .ocx e .dll che vuoi senza doverli registrare.

    ovviamente la cosa a volte fa casino e va (più o meno bene) da windows2000 in poi.




  7. #7
    sebamix: mi interessa questo discorso sull'isolation level. Se ho capito bene, le librerie OCX possono essere riconosciute e sfruttate dall'eseguibile semplicemente mettendole in una sottocartella di nome nomefile.exe.local senza doverle registrare.

    Suppongo che i "casini" che hai citato sono dovuti al fatto che, se quella OCX è già presente (e registrata) sulla macchina, l'eseguibile non capisce quale deve richiamare. Oppure ti riferivi a qualcosa di diverso?

    Mi sembra di capire, inoltre, che questo "stratagemma" non funziona sotto Windows 98. E' così?

    Thanks in advance.
    http://www.espositosoftware.it

  8. #8
    Io ho provato a inserire il file .ocx nella cartella dove ho il file nomeProgettp.exe e per ora funziona senza darmi problemi. Per registrare un file .ocx come devo fare? Grazie

  9. #9
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Originariamente inviato da esposito
    sebamix: mi interessa questo discorso sull'isolation level. Se ho capito bene, le librerie OCX possono essere riconosciute e sfruttate dall'eseguibile semplicemente mettendole in una sottocartella di nome nomefile.exe.local senza doverle registrare.

    Suppongo che i "casini" che hai citato sono dovuti al fatto che, se quella OCX è già presente (e registrata) sulla macchina, l'eseguibile non capisce quale deve richiamare. Oppure ti riferivi a qualcosa di diverso?

    Mi sembra di capire, inoltre, che questo "stratagemma" non funziona sotto Windows 98. E' così?

    Thanks in advance.
    No, a grandi linee funziona così (avevo un link ma l'ho perso comunque google aiuta ):

    lanci una app che usa magari un componente com (ocx o dll)

    is s.o. prima guarda sulla stessa cartella dell'exe se c'è la cartella .local . se la trova cerca nella stessa cartella il file con il componente com. Se non trova il file fa come al solito e cerca nel registry i riferimenti allo stesso.

    Comunque è una cosa abbastanza complessa (ad esempio ci sono vari livelli di isolation).

    Per win98 non credo, alcuni siti dicevano di si, altri di no. E' una cosa classica di M$ conosciuta ma non troppo (e sicuramente poco pubblicizzata).


  10. #10
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Originariamente inviato da maurocoviello
    Io ho provato a inserire il file .ocx nella cartella dove ho il file nomeProgettp.exe e per ora funziona senza darmi problemi. Per registrare un file .ocx come devo fare? Grazie
    Da prompt dei comandi:

    regsvr32 c:\percorso\pippo.dll

    registri, mentre

    regsvr32 -u c:\percorso\pippo.dll

    deregistri.

    Se vuoi aggiornare una dll è preferibile deregistrarla prima (tanto per evitare l'inevitabile dll-hell ).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.