Newsgroup: it.comp.lang.visual-basic
Titolo: Proteggere un ActiveX

Vorrei proteggere un ActiveX.
Ho pensato di far lavorare il mio ActiveX
solo sull' HardDisk dello sviluppatore
che lo ha regolarmente avquistato.
Assumiamo che conosco il numero di serie
dell'HardDisk del mio cliente regolare.
In quale parte del mio ActiveX devo inserire il codice 
di controllo per verificare la corrispondenza del numero di serie?
Nella routine "Initialize"?
Ed in che modo posso bloccare il funzionamento dell' ActiveX
se esso viene caricato su un HardDisk con un numero
che non è quello del mio cliente registrato?
 
Ammettiamo che il numero dell'HD del cliente regolare
sia 12345.
Ora, nella routine "Inintialize" ho scritto
If  numerogiusto = 12345 then
'non accade niente e lo sviluppatore può continuare a lavorarci 
else
Unload me
End if
Il comando "Unlod me" mi dà un errore.
In sostanza,
come posso fermare uno sviluppatore non
regolare nell'uso del mio ActiveX?
Grazie
Andrea

 regolare nell'uso del mio ActiveX?
Dalle esperienze che ho avuto molte software-house concedono i loro
ActiveX gratuitamente.
Poi quando vengono avviati (quindi a run-time) prima di utilizzarli, devi
registrarti inserendo il codice di acquisto
tipo:
NomeOCX.Register "JKDSFHJK37854892J"
se il codice è errato o non viene richiamata la funzione, puoi fare che
l'OCX non
funziona oppure appare una form con scritto "registrami stronzo!"
Molte ditte, anche professionali, fanno così.
Gianni.

Ok, io faccio un controllo nella routine "Initialize"
per la corrispondenza del numero dell' HardDisk,
ma se il numero non corrisponde come fermo che il mio ActiveX?
Attenzione siamo ancora in design-time!
Il suo programma contenente il mio ActiveX
non è stato cioè ancora eseguito.
Se lo esegue o addirittura lo compila la frittata è fatta 
perchè l'ActiveX parte comodamente all' evento 
Load del Form1 stesso.
Devo fermarlo prima, quando lo sviluppatore in design-time
lo sta mettendo sul suo Form1. 
Non conosco nè il codice da usarsi,
ne' il posto dove inserirlo.
Ripeto basta una istruzione  If then ,
conoscendo io già il suo numero di HardDisk.

 conoscendo io gią il suo numero di HardDisk.
Per me č una boiata usare il numero dell'HardDisk.
Metti che l'utente cambia computer, gli si fotte l'hard disk
oppure fa una copia fisica dell'hard disk (il numero rimane
lo stesso)
Capisco che č un metodo sicuro ma non č portabile...

Capisco che è un metodo sicuro ma non è portabile...
Guarda è piu' portabile di quanto sembri
perchè è raro il cambiamento cosi' radicale
(noi ci facciamo molti scrupoli) e comunque
nel mio caso in 6-12 ore riavrebbe la sua copia
licenziata.
Quindi al momento non riesco a cambiare opinione
sul tipo di protezione.
Ti diro' di piu':
se il mio ocx è su un server (con un numero di
Hd regolarmente licenziato) qualsiasi sviluppatore che
sviluppa su una macchina client puo' accedervi.
Ebbbene io vorrei "controllare" anche questa possibilità.
Come  faccio  a riconoscere dall'interno del mio ocx (che se ne puo'
stare anche su un altro disco, appunto) il disco dello sviluppatore in
macchina client?
Sono in grado di riconoscere il thread corrente, 
da lì con l'API  Exefromthread (il nome è sicuramente sbagliato)
il nome delle'eseguibile
e su su fino all' hard disk. 
Qualcuno ha fatto un percorso simile? 

 sviluppa su una macchina client puo' accedervi.
Non ho afferrato come fai. Un OCX è un file presente nel sistema
e registrato in windows. Come fai a farlo condividere in rete?
--
@::Krono::@