Controllo OCX nel progetto [lunghetto...]

di il
4 risposte

Controllo OCX nel progetto [lunghetto...]

Buongiorno a tutti,
lavoro in un hotel/residence e tempo fa mi sono divertito (prendendo spunti da un piccolo esempio di gestione database) a creare una sorta di applicazione in VB6 che consente di digitare un numero di appartamento e mostrare le foto degli interni (ho fatto io alcuni scatti) in modo da rendersi conto visivamente se c'è un letto matrimoniale/letti separati, se presente un bagno con vasca o doccia o magari vedere solo come è arredato visto che abbiamo differenti soluzioni. Molto pratico perchè con il cliente davanti che richiede alcuni requisiti importanti, senza magari dover andare di persona a vedere l'appartamento (o più di uno) perdendo quindi del tempo prezioso, posso farlo semplicemente lanciando l'applicazione la quale accede ad un database mdb dove posso eventualmente modificare (nel caso vengano effettuate modifiche permanenti praticate dalla struttura) i dati da gestire. Tengo a precisare che il mio capo ha gradito molto questa mia applcazione, ha detto che ho avuto una bella idea!
Il programma è molto semplice, un EXE e un file MDB copiato su due pendrives (al ricevimento abbiamo 2 PC) con sistema operativo Win7.
Ora nasce il problema...
La scorsa settimana sono venuti un paio di tecnici da Milano per aggiornare il software, cambiare i PC desktop e metterne altri con Win8. Mentre facevano la migrazione dei dati mi ha chiesto cosa ci fosse dentro al pendrive e gli ho mostrato il programma spiegandogli che lo usiamo appunto per identificare soluzioni in base alle richieste dei clienti. Ha trovato molto utile questa applicazione e mi ha suggerito di trasferirla direttamente su una porzione di spazio in modo che è più veloce ed inoltre la notte viene backuppata dal sistema in caso di emergenza.
Fatto quanto suggerito da lui, l'applicazione non funzionava più ma restituiva gli errori sui files COMDLG32.OCX e MSMASK32.OCX.
L'ho fatto presente e ha registrato i due controlli (su entrambi i PC), chiaramente con i requisiti di "admin" ed il programma è tornato a funzionare.
Ora visto che mi piacerebbe condividerlo con i colleghi dell'ufficio, con la governante e con il mio capo, il problema di questi errori ce l'hanno loro quando tentano di lanciare l'applicazione.
Ora, dal momento che richiedere modifiche sul sistema implica l'apertura di una pratica con intervento dell'operatore da remoto, procedura difficile da realizzare, le vie da percorrere potrebbero essere 2 con una terza che chiedo a voi se fosse possibile.
1) Lasciare tutto così come è, utilizzare l'applicazione solo sui 2 pc autorizzati.
2) Attendere che il tecnico venga da noi per effettuare lavori richiesti e nel caso potrò parlarci direttamente per chiedergli di applicare la stessa procedura sugli altri pc.
3) E' possibile integrare, come da oggetto un controllo OCX nel progetto ed evitare quindi l'errore?

Visto che mi trovo qui, non ho bisogno di creare un file installazione ma io stesso posso fare copia incolla (l'ho già fatto) magari anche in futuro in caso di modifiche anche a livello grafico della mia applicazione, questo anche a discapito della dimensione dell' EXE.
Mi scuso per essermi dilungato troppo e mi è gradita l'occasione per inviarvi i miei migliori saluti, in particolare modo a Gibra che seguo sempre in tutti i suoi post molto tecnici e dettagliati.

Stefano

4 Risposte

  • Re: Controllo OCX nel progetto [lunghetto...]

    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).

  • Re: Controllo OCX nel progetto [lunghetto...]

    Grazie Gibra sei stato molto esaustivo, seguirò il tuo consiglio numero 1 che anche a mio avviso resta ina soluzione più idonea al mio scopo. Eventualmente per testare ciò cosa faccio, rinomino i controlli nel mio pc ci un semplice bak e ci lavoro sopra? Eliminare questi 2 controlli dalla vista di Windows non credo possa creare problemi di instabilità al sistema giusto?
    Grazie!
  • Re: Controllo OCX nel progetto [lunghetto...]

    Ho scritto: eliminare dall'applicazione.
    Non da Windows!
  • Re: Controllo OCX nel progetto [lunghetto...]

    Perfetto, tutto chiaro!
    Grazie
Devi accedere o registrarti per scrivere nel forum
4 risposte