| * 各主键与一个整数(INTEGER)值相对应,即: #DEFINE HKEY_CLASSES_ROOT bitset(0,31) &&-2147483648 #DEFINE HKEY_CURRENT_USER bitset(0,31)+1 &&-2147483647 #DEFINE HKEY_LOCAL_MACHINE bitset(0,31)+2 &&-2147483646 #DEFINE HKEY_USER bitset(0,31)+3 &&-2147483645 #DEFINE HKEY_CURRENT_CONFIG bitset(0,31)+5 &&-2147483643 #DEFINE HKEY_DYN_DATA bitset(0,31)+6 &&-2147483642 * 键值的数据类型:1-字符串,3-二进制,4-整数 #DEFINE REG_SZ 1 #DEFINE REG_BINARY 3 #DEFINE REG_DWORD 4 * 当以下API函数返回0时,操作成功。 DECLARE Integer RegOpenKey IN Win32API ; Integer nHKey, String @cSubKey, Integer @nResult DECLARE Integer RegCreateKey IN Win32API ; Integer nHKey, String @cSubKey, Integer @nResult DECLARE Integer RegSetValueEx IN Win32API ; Integer hKey, String lpszValueName, Integer dwReserved,; Integer fdwType, String lpbData, Integer cbData DECLARE Integer RegQueryValueEx IN Win32API ; Integer nHKey, String lpszValueName, Integer dwReserved,; Integer @lpdwType,string @lpbData, Integer @lpcbData * DECLARE Integer RegDeleteKey IN Win32API ; * Integer nHKey, String @cSubKey * DECLARE Integer RegDeleteValue IN Win32API ; * Integer nHKey, String cSubKey * DECLARE Integer RegCloseKey IN Win32API ; * Integer nHKey csubkey='Software\lytapp' nresult=0 if regopenkey(HKEY_CURRENT_USER,@csubkey,@nresult)#0 RegCreateKey(HKEY_CURRENT_USER,csubkey,@nresult) endif * 在nresult中存放了指向子键“HKEY_CURRENT_USER\Software\lytapp”的长整数值 lpdwtype=0 lpbdata=space(256) lpcbdata=len(lpbdata) if RegQueryValueEx(nresult,'TimesForUse',0,@lpdwtype,@lpbdata,@lpcbdata)=0 do case case lpdwtype=REG_SZ lpbdata=left(lpbdata,lpcbdata-1) if val(lpbdata)<12 lpbdata=alltrim(str(val(lpbdata)+1)) messagebox('本程序在未注册之前只能使用12次!'+CHR(13)+' 您现在是第'+ ; lpbdata+'次使用本程序。') lpbdata=lpbdata+chr(0) cbdata=len(lpbdata) RegSetValueEx(nresult,'TimesForUse',0,REG_SZ,lpbdata,cbdata) else messagebox(" 程序已过期作废!"+CHR(13)+" 请与作者联系注册事宜。") endif case lpdwtype=REG_BINARY messagebox('该键值为二进制数据。') case lpdwtype=REG_DWORD messagebox('该键值为长整数数据,请用 NN=0'+CHR(13)+'for i=1 to 4'+CHR(13)+ ; 'NN=NN+VAL(SUBSTR(lpbdata,i,1)*16^(2*i-2)'+CHR(13)+ ; 'endfor 读取此数值。') otherwise messagebox('未知数据!') endcase else lpbdata='1' messagebox('本程序在未注册之前只能使用12次!'+CHR(13)+' 您现在是第'+lpbdata+'次使用本程序。') lpbdata=lpbdata+chr(0) RegSetValueEx(nresult,'TimesForUse',0,REG_SZ,lpbdata,2) endif |
最新相关文章
发表评论