Initial import of ROACONT (Visual FoxPro accounting app) into git
Migrated from the ROACONT SVN trunk working copy for hosting on gitea.romfast.ro.
This commit is contained in:
93
Programe/verificare.prg
Normal file
93
Programe/verificare.prg
Normal file
@@ -0,0 +1,93 @@
|
||||
|
||||
FUNCTION verif_ser_perm
|
||||
CLEAR
|
||||
?PORNIRE()
|
||||
Function pornire
|
||||
Set Exact On
|
||||
Private calewin,calesys,checksum1,checksum2,serinreg,serdisk,file1,file2,valret,serdisktemp
|
||||
Store '' To calewin,serinreg,serdisk,calesys,serdisktemp,catehd
|
||||
Store 0 To checksum1,checksum2
|
||||
Store .T. To valret
|
||||
Declare Integer SHGetFolderPath In SHFOLDER.Dll ;
|
||||
INTEGER hwndOwner, ;
|
||||
INTEGER nFolder, ;
|
||||
INTEGER hToken, ;
|
||||
INTEGER dwFlags, ;
|
||||
STRING @ pszPath
|
||||
Declare Integer GetActiveWindow In WIN32API
|
||||
#Define CSIDL_WINDOWS 36
|
||||
#Define CSIDL_SYSTEM 37
|
||||
#Define CSIDL_PROGRAMS 38
|
||||
lcPath = Repl(Chr(0),261)
|
||||
=SHGetFolderPath(GetActiveWindow(),CSIDL_WINDOWS,0,0,@lcPath)
|
||||
calewin=Left(lcPath,At(Chr(0),lcPath)-1)
|
||||
lcPath = Repl(Chr(0),261)
|
||||
=SHGetFolderPath(GetActiveWindow(),CSIDL_SYSTEM,0,0,@lcPath)
|
||||
calesys=Left(lcPath,At(Chr(0),lcPath)-1)
|
||||
&&se verifica existenta celor trei fisiere
|
||||
If (Not File(calesys+'\diskserial.dll')) Or (Not File(calesys+'\getmacip.dll')) Or (Not File(calewin+'\comdir.snr'))
|
||||
valret=.F.
|
||||
Endif
|
||||
If valret
|
||||
file1=Filetostr(calesys+'\diskserial.dll')
|
||||
checksum1=Sys(2007,file1)
|
||||
file2=Filetostr(calesys+'\getmacip.dll')
|
||||
checksum2=Sys(2007,file2)
|
||||
If (VAL(checksum1) != 58755) Or (VAL(checksum2) != 30476)
|
||||
valret=.F.
|
||||
Endif
|
||||
Endif
|
||||
If valret
|
||||
Declare Integer GetSerialNumber In diskSerial.Dll Integer ,String
|
||||
serdisktemp=Space(40)
|
||||
catehd=0
|
||||
For i=0 To 3
|
||||
GetSerialNumber(i,@serdisktemp)
|
||||
If (Len(Alltrim(serdisktemp))!=0) And catehd=0
|
||||
serdisk=Substr(Alltrim(serdisktemp),Len(Alltrim(serdisktemp))-8,8)
|
||||
serdisk=Upper(serdisk)
|
||||
catehd=catehd+1
|
||||
Endif
|
||||
Endfor
|
||||
Endif
|
||||
If valret
|
||||
gnFileHandle = Fopen(calewin+'\comdir.snr')
|
||||
nSize = Fseek(gnFileHandle, 0, 2) && Move pointer to EOF
|
||||
If nSize<8
|
||||
valret=.F.
|
||||
Else
|
||||
= Fseek(gnFileHandle, 0, 0) && Move pointer to BOF
|
||||
cString = Fread(gnFileHandle,8)
|
||||
serinreg=DECODARE1(Alltrim(Upper(cString)))
|
||||
If serdisk!=serinreg
|
||||
valret=.F.
|
||||
Endif
|
||||
Endif
|
||||
= Fclose(gnFileHandle)
|
||||
Endif
|
||||
On Error valret=.F.
|
||||
Return valret
|
||||
*************
|
||||
FUNCTION decodare1
|
||||
PARAMETERS lstring
|
||||
LOCAL lens,poz1,poz2,lret,lcstring,val1
|
||||
lret=''
|
||||
lcstring=ALLTRIM(UPPER(lstring))
|
||||
lens=LEN(lcstring)
|
||||
FOR i=1 TO lens
|
||||
poz1=SUBSTR(lcstring,i,1)
|
||||
val1=ASC(poz1)
|
||||
DO CASE
|
||||
CASE val1>=48 AND val1<=57
|
||||
poz2=CHR(val1+33)&& din 0-9 in Q-Z
|
||||
CASE val1>=81 AND val1<=90
|
||||
poz2=CHR(val1-33)&& din Q-Z in 0-9
|
||||
CASE val1>=65 AND val1<=72
|
||||
poz2=CHR(val1+8)&&din K-R in S-Z
|
||||
CASE val1>=73 AND val1<=80
|
||||
poz2=CHR(val1-8)&&din S-Z in K-R
|
||||
ENDCASE
|
||||
lret=lret+poz2
|
||||
endfor
|
||||
RETURN lret
|
||||
|
||||
Reference in New Issue
Block a user