3.4为表单添加方法MyReadRegistryString
用于读取指定的键值,程序代码如下:
LPARAMETERS HKey,subkey,entry
LOCAL nHandle,bs,nBuffersize,cDataBuffer,nType
nHandle=0
bs=RegOpenKey(HKey,subkey,@nHandle)
IF BS#ERRORXX
RETURN .NULL.
ENDIF
DECLARE INTEGER RegQueryValueEx IN Win32API INTEGER nhkey,STRING ;
LPSZVALUENAME,INTEGER dwreserved,INTEGER @LPDWTYPE,STRING @LPBDATA,;
INTEGER @LPCBDATA
cdatabuffer=SPACE(256)
nbuffersize=LEN(cdatabuffer)
NTYPE=1
BS=RegQueryValueEx(nhandle,entry,0,@ntype,@cdatabuffer,@nbuffersize)
=RegcloseKey(nhandle)
IF BS#ERRORXX
RETURN ""
ENDIF
IF nbuffersize<2
RETURN ""
ENDIF
RETURN SUBSTR(CHRTRAN(cdatabuffer,CHR(0)," "),1,nbuffersize)
4 运行结果
按照上面的方法将程序代码输入后,运行这个表单,第一次使用时将在注册表中生成一个子键和赋值后,系统每次进入时读取子键的数据值并进行减1操作,然后提示本系统还可以使用的次数,多次运行表单到设定的次数时,程序将不可使用。以上对在VFP系统中使用次数进行限制功能提出了具体实现的方法,这里只是提供了简单的思路,没有考虑容错性,有兴趣的读者不妨一试。
参考文献
[1] 张洪举.专家门诊—Visual Foxpro开发答疑160问[M].北京:人民邮电出版社,2004.
|