Il problema è questo:
Ho una unit standard comune a tutti i miei programmi.
In questa unit controllo che il programma installato sia stato attivato in
base a un codice che rilascio successivamente all'acquisto del programma da
parte del cliente. Il codice che rilascio all'utente lo calcolo in base a
diversi parametri tra cui il seriale dell'Hard disk su cui è installato il
software (per evitare copie su altri PC).
Il sistema funziona. L'unico problema è che con questo sistema due programmi
diversi sullo stesso hard disk hanno lo stesso codice di attivazione. Vorrei
risolvere aggiungendo ai parametri di calcolo un ID univoco per ogni
programma diverso. Non voglio però settare questo ID manualmente all'interno
dei programmi.
L'idea era quella di leggere all'avvio del programma il nome programma es.
"programma.exe", convertirlo in un intero univoco e fare i miei calcoli e
verifiche.
Dico intero perchè la mia funzione di calcolo è già pronta ma richiede però
un integer e siccome è abbastanza complessa non volevo rimetterci mano.
questa unit che ho trovato sarebbe stata perfetta ma il range è troppo
elevato e ho verificato che quasi sempre sforo gli integer
type
UInt64 = 0..9223372036854775807;
function Unc(s: string): UInt64;
var
x: Integer;
begin
Result := 0;
for x := 1 to Length(s) do Result := Result + ((Ord(s[x])) shl ((x - 1) *
8));
end;
Spero di essere stato chiaro.
Se non dovessi trovare soluzione alla fine vedrò di aggiungere un ID
all'interno di ogni programma anche se non mi piace molto perchè vorrei che
fosse tutto automatico ed indipendente.
Grazie mille
Andrea
Post by Andrea LaforgiaPost by Blowin' freeQuello che voglio è dare un ID univoco ad ogni programma in esecuzione sul
PC. L' ID però deve essere sempre lo stesso per lo stesso programma.
Come posso fare?
Parti da 1 e prosegui fino a che non esaurisci i numeri naturali.
O c'è qualche vincolo che impone di non avere numeri interi come ID?
sono i processi a girare sul PC e puoi avere più processi per lo stesso
programma...
--
questo articolo e` stato inviato via web dal servizio gratuito