Premessa:
E' assodato che i componenti OCX devono essere registrati sul pc, altrimenti non funzionano. Su questo non c'è scampo.
Discorso diverso è per la libreria 'standard' di Visual Basic 6.0 che è ominipresente in tutte le versioni di Windows (da 2000 in avanti),
per cui se si usano i soli controlli intrinseci di VB6, non serve installare o registrare alcunché.
Detto questo, le soluzioni possono essere:
1) elimini i componenti OCX dall'applicazione e li sostituisci con 'codice sorgente'; è una strada complessa, ma fattibile con un po' di ricerca e studio. Moduli sorgenti (BAS/CLS) per sostituire la CommonDialog ce ne sono a pacchi su internet.
Discorso diverso per il controllo MaskedEdit, perché la gestione dei testi 'formattati' può essere complicatissima o semplicissima, dipende per 'cosa' lo usi.
NON servono i diritti di amministratore per eseguire il programma.
2) crei un SETUP che esegua l'installazione di tali componenti: usando l'installer InnoSetup è relativamente semplice; questa è la strada 'standard'.
Non è però semplice, bisogna studiarsi per bene l'argomento 'installazione/rimozione', fare test, ecc...
Servono i diritti di amministratore per installare il programma.
3) Usi
Enigma VirtualBox per 'inglobare' i controlli OCX nel tuo exe , ed i componenti vengono registrati 'virtualmente'
Il programma può stare su una chiavetta, ma richiede comunque i diritti di amministratore. Non è semplicissimo, funziona, ma non è priva di problemi 'funzionali'.
Servono i diritti di amministratore per eseguire il programma.
Io l'ho usato per il mio
VS6 Installer perché ho previsto che l'utente debba installare Visual Basic 6.0
in un sistema pulito, che quindi non abbia niente di già installato alcunché e non volevo 'costringere' l'utente ad installare 'qualcosa', ma poter utilizzare il programma anche da chiavetta USB. Enigma VirtualBox lo trovi qui:
Software Protection, Software Licensing, Software Virtualization
http://enigmaprotector.com/en/aboutvb.htm
A mio avviso, la scelta migliore è la (1).