FoxPro/Visual FoxPro - VOL del disco duro

 
Vista:

VOL del disco duro

Publicado por Luis Polo (134 intervenciones) el 28/03/2007 18:58:00
Hola amigos:
Tengo este codigo, para que no copien mi sistema a otra Pc.
Esto esta en mi PRG inicial.

RUN VOL > CCC.TXT
CREA CURSOR CCC (glosa C(45))
APPE FROM CCC.TXT DELIMITE
APPE BLAN
GO 3
W_SEGURIDAD = SUBS(CCC.glosa,36,9)
USE

IF W_SEGURIDAD#'8C40-E638'
DO FORM EXPIRA
ELSE
DO MENU.MPR
ENDIF

Ya generado el EXE lo pruebo en otra Pc, el cual deberia ejecutar DO FORM EXPIRA, ya que el VOL no coincide con el mencionado. pero lo ignora.
Ahora si corro los fuentes desde la ventana de comandos si me ejecuta el formulario EXPIRA.SCX. alguien podria decirme que sucede.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:VOL del disco duro

Publicado por DOUGLAS (297 intervenciones) el 28/03/2007 22:16:33
Bien, esta bien tu esfuerzo, pero veo claramente que es muy rustica ya que usas commando DOS

porque no lo haces de esta forma.

CUANDO SE INSTALE POR PRIMERA VES EL PROGRAMA HACE QUE EL ARCHIVO INI DE WINDOWS.

XSERIE =SYS(9) &&&ESTO TE REGRESA LA SERIE DEL DISCO DURO.
ALMACENALA EN EL ARCHIVO INI DE WINDOWS.

QUE BUSQUE EL PARAMETRO SI NO LO ENCUENTRA QUE TE ENVIE UNA PANTALLA DE REGISTRO Y TE TENDRAN QUE LLAMAR.
PODES TRABAJAR CON UNA SERIE ESPECIFICA QUE DIGITES TIPO CLAVE.

CON ESTA RUTINA.

SU USO.
CLARO


XSERIE =SYS(9)
=WriteFileIni("C:\WINDOWS\WIN.ini","Defaul","SERIE",XSERIE)
**SI REVISAS TU WIN.INI TENDRA ESTO AL FINAL

[Defaul]
SERIE=55181-335-2552777-03660

ASI LO VERIFICAS SI EXISTE.

RESPUESTA = ReadFileIni("C:\WINDOWS\WIN.ini","Defaul","SERIE")

?RESPUESTA &&&ESTO TE MOSTRARA
55181-335-2552777-03660

ABAJO TE COPIO LA RUTINA NO ES NADA SOFISTICADO DIRIA YO YA QUE ESO DE LLER ARCHIVOS INI NO ES NUEVO PERO ESTA MENOS COMPLICADO QUE TU CODIGO YA QUE ESTA RUTINA LO HACE TODO POR TI.

bYE ESPERO TE SIRVA
CUALQUIER PREGUNTA ESTOY EN LINEA
[email protected]

*COPIA EL CODIGO DE ABAJO EN TU PROGRAMA PRINCIPAL
** o en un programita donde tengas tus rutinas
**ya sabes al inicio set procedure tur rutinas si fuese este el caso sino copialo en tu programa princiapal este codigo.

FUNCTION WriteFileIni(tcFileName,tcSection,tcEntry,tcValue)
*----------------------------------------------------
* Escribe un valor de un archivo INI.
* Si no existe el archivo, la sección o la entrada, la crea.
* Retorna .T. si tuvo éxito
* PARAMETROS:
* tcFileName = Nombre y ruta completa del archivo.INI
* tcSection = Sección del archivo.INI
* tcEntry = Entrada del archivo.INI
* tcValue = Valor de la entrada
* USO: WriteFileIni("C:\MiArchivo.ini","Default","Port","2")
* RETORNO: Logico
*----------------------------------------------------
DECLARE INTEGER WritePrivateProfileString ;
IN WIN32API ;
STRING cSection,STRING cEntry,STRING cEntry,;
STRING cFileName
RETURN IIF(WritePrivateProfileString(tcSection,tcEntry,tcValue,tcFileName)=1, .T., .F.)
ENDFUNC
*
----------------------------------------------------
FUNCTION ReadFileIni(tcFileName,tcSection,tcEntry)
*----------------------------------------------------
* Lee un valor de un archivo INI.
* Si no existe el archivo, la sección o la entrada, retorna .NULL.
* PARAMETROS:
* tcFileName = Nombre y ruta completa del archivo.INI
* tcSection = Sección del archivo.INI
* tcEntry = Entrada del archivo.INI
* USO: ReadFileIni("C:\MiArchivo.ini","Default","Port")
* RETORNO: Caracter
*----------------------------------------------------
LOCAL lcIniValue, lnResult, lnBufferSize
DECLARE INTEGER GetPrivateProfileString ;
IN WIN32API ;
STRING cSection,;
STRING cEntry,;
STRING cDefault,;
STRING @cRetVal,;
INTEGER nSize,;
STRING cFileName
lnBufferSize = 255
lcIniValue = spac(lnBufferSize)
lnResult=GetPrivateProfileString(tcSection,tcEntry,"*NULL*",;
@lcIniValue,lnBufferSize,tcFileName)
lcIniValue=SUBSTR(lcIniValue,1,lnResult)
IF lcIniValue="*NULL*"
lcIniValue=.NULL.
ENDIF
RETURN lcIniValue
ENDFUNC

**********************
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VOL del disco duro

Publicado por Luis Polo (134 intervenciones) el 30/03/2007 16:01:26
Hola Douglas:

Gracias por responder, Yo uso Vfp7 y la verdad no pude correrlo, pero me diste otra idea mas. De momento creare cualquier archivo y dejarlo en la carpeta de windows. que valide si existe si es asi, acceso al sistema

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:VOL del disco duro

Publicado por jesus cordero (405 intervenciones) el 01/04/2007 22:58:24
SYS(9) - Número de serie de Visual FoxPro

Devuelve su número de serie de Visual FoxPro.

No es el serial del disco duro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar