Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Numero de Serie do Disco duro
Message
From
24/09/2002 10:34:46
 
 
To
24/09/2002 09:50:31
General information
Forum:
Visual FoxPro
Category:
Installation, Setup and Configuration
Miscellaneous
Thread ID:
00703752
Message ID:
00703778
Views:
29
This message has been marked as a message which has helped to the initial question of the thread.
>Eu quero , fazer umas rotinas , com base no numero de serie do disco , para licenciar as cópias do meu programa .

Ok, Pedro, lembra-te só que uma reformatação ou mudança de disco no sistema do utilizador são situações que vão necessitar de ser tratadas pelo teu sistema.

>Para isso gostava de saber o tamanho mínino e máximo desse numero e se é sempre numérico ou pode conter caracteres ?
>
>Pelo que entendi da tua resposta , é sempre numérico , mas pode ser um valor negativo .

É um número inteiro de 32 bits. O VFP não tem o conceito de unsigned (todos as variáveis numéricas podem ter valores negativos), e a representação hexadecimal do número série do volume (tal como nos aparece quando fazemos um DIR) exige um número positivo. A expressão que propus trata de assegurar que o número é bem representado, quer seja positivo quer seja negativo. Para dizer a verdade, agora que a revejo há um erro na expressão. Deve ser
? RIGHT(TRANSFORM(IIF(m.lnSerialNumber<0,2^32+m.lnSerialNumber,m.lnSerialNumber),"@0"),8)
>Ora , isso não entendi .
>A função que enviaste , é para usar quando o nº de série é negativo , para o transformar em positivo ?
>
>Por favor explica melhor , em português , por favor ...
>
>***
>
>HD's serial number is an unsigned long that can be stored as an integer: if negative, it should be complemented first. If you want to store its hexadecimal representation (such as reported by a DIR command), you should take that in account:
>
>m.lnSerialNumber = -390867900 && my C drive, actually
>? RIGHT(TRANSFORM(IIF(m.lnSerialNumber<0,2^32-m.lnSerialNumber,m.lnSerialNumber),"@0"),8)
>In this case, you have a 8 bytes wide character string.
----------------------------------
António Tavares Lopes
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform