Foxwx微信公众号管理软件---同心软件 -以高级编程语言进行微信公众号管理,我们一直在努力!

运行库VFP9R及VFP9RCHS改名

*!* 将运行库VFP9R及VFP9RCHS改名:


*!* 假如:

*!* VFP9R.DLL    =>    AAAAA.DLL

*!* VFP9RCHS.DLL => BBBBBCHS.DLL

*!* 1:打开VFP9RCHS.DLL,将里面的VFP9R%s改成BBBBB%s;将VFP9RCHS.DLL改名为BBBBBCHS.DLL;

*!* 2:打开VFP9R.DLL,将里面的VFP9R.DLL改成AAAAA.DLL;将VFP9R.DLL改名为AAAAA.DLL;

*!* 3.打开该exe程序,将里面的VFP9R.DLL改成AAAAA.DLL

*!* 4.开启修改后的EXE运行,完!


*!* 最好不要变动字符长度,如果改变了字符的长度,请相应处理修改后的文件

*!* 把CHS也改掉的话,需要将VFP9R.DLL中的VFP9R%s和VFP9R???同时替换

*!* 同样的可以应对VFP9T.DLL


*!* 同样的方法可以修改掉里面的错误信息.如:

*!* ---------------------------

*!* Microsoft Visual FoxPro

*!* ---------------------------

*!* Visual FoxPro cannot start. Could not load resources.

*!* ---------------------------

*!* 确定   

*!* ---------------------------


SET DEFAULT TO JUSTPATH(SYS(16,0))

SET SAFETY OFF 

SET NOTIFY OFF 


CLEAR 


*!* PRG目录下请存放EXE文件/VFP9R.DLl/VP9RCHS.DLL


IF !DIRECTORY([BIN])

 MD BIN

ENDIF 

lcFile = [x5Kit.EXE]


****************************************

*!* EXE: 

IF FILE()

COPY FILE (lcFile) TO ([BIN\] + lcFile)

DispelFile([BIN\] + lcFile)


*!* VFP9R.DLL

IF FILE([VFP9R.DLL])

 COPY FILE ([VFP9R.DLL]) TO ([BIN\Iamx5.DLL])

 DispelFile([BIN\Iamx5.DLL],.T.) 

ENDIF 


*!* VFP9RCHS.DLL

IF FILE([VFP9RCHS.DLL])

 COPY FILE ([VFP9RCHS.DLL]) TO ([BIN\Iamx5Lib.DLL])

 DispelFile([BIN\Iamx5Lib.DLL],.T.)

ENDIF 


? [Done~~~~]


*!* COPY FILE (lcSaveName) TO ([\\192.168.0.109\hare$\Test] + lcSaveName)



****************************************

FUNCTION DispelFile

 LPARAMETERS lcFile,llEraseMS

 *!* VFP9R

 lcStr    = Chr0string([VFP9R]) && Get 2

 lcNewStr = Chr0string([Iamx5])

 UpdateFile(lcFile,lcStr,lcNewStr)

 lcStr    = [VFP9R] && Get 2

 lcNewStr = [Iamx5]

 UpdateFile(lcFile,lcStr,lcNewStr)

 IF llEraseMS = .T.

  *!* MicroSoft

  lcStr    = Chr0string([MicroSoft]) && Get 2

  lcNewStr = Chr0string([Iamx5Soft])

  UpdateFile(lcFile,lcStr,lcNewStr)

  lcStr    = [MicroSoft] && Get 2

  lcNewStr = [Iamx5Soft]

  UpdateFile(lcFile,lcStr,lcNewStr)

 ENDIF 

 *!* Visual FoxPro

 lcStr    = Chr0string([Visual FOXPRO]) && 6 Times

 lcNewStr = Chr0string([Dispel x5Libs],LEN(lcStr))

 UpdateFile(lcFile,lcStr,lcNewStr)

 lcStr    = [Visual FOXPRO] && Get 6

 lcNewStr = [Dispel x5Libs]

 UpdateFile(lcFile,lcStr,lcNewStr)

 *!* FoxPro

 lcStr    = Chr0string([FOXPRO]) && 6 Times

 lcNewStr = Chr0string([x5Libs],LEN(lcStr))

 UpdateFile(lcFile,lcStr,lcNewStr)

 lcStr    = [FOXPRO] && Get 6

 lcNewStr = [x5Libs]

 UpdateFile(lcFile,lcStr,lcNewStr)

ENDFUNC 


****************************************

FUNCTION UpdateFile

 LPARAMETERS lcFile,lcStr,lcNewStr

 ? [Searched   : ] + lcFile

 lnHandle = FOPEN(lcFile,2)

 IF lnHandle < 0

  ? [Open Error]

  RETURN 

 ENDIF 

 ON ERROR FCLOSE(lnHandle)

 lnSeekSize = LEN(lcStr)

 SET COMPATIBLE ON 

 lnFileSize = FSIZE(lcFile)

 FOR i=1 TO lnFileSize

  FSEEK(lnHandle,i,0)

  lcGets = FREAD(lnHandle,lnSeekSize)

  IF UPPER(LEFT(lcGets,lnSeekSize)) == UPPER(lcStr)

   ? [ ] + TRANSFORM(i,[@0]) + [: ]

   FSeek(lnHandle,-lnSeekSize,1)

   ?? IIF(FWRITE(lnHandle,lcNewStr)>0,[Success],[Failure])

   FFLUSH(lnHandle,.T.)

  ENDIF 

 ENDFOR 

 ?[------------------]

 ?

 FCLOSE(lnHandle)

ENDFUNC 


****************************************

FUNCTION Chr0string

 LPARAMETERS lcString,lnReturnLen

 IF VARTYPE(lnReturnLen) # [N]

  lnReturnLen = 0

 ENDIF 

 LOCAL lcNewString ,lnlen,i

 lnLen = LEN(lcString)

 lcNewString = []

 FOR i = 1 TO lnLen

  lcNewString = lcNewString + SUBSTR(lcString,i,1) + CHR(0)

 ENDFOR 

 IF lnReturnLen > 0

  lcNewString = PADR(lcNewString,lnReturnLen,CHR(0))

 ENDIF 

 RETURN lcNewString

ENDFUNC 


Tags: vfp

发布: admin 分类: 程序开发 评论: 0 浏览: 320
留言列表
发表留言
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。