关于VFP对注册表的操作的问题 vfp6。0有个注册表类。好象叫regist 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 提供给大家一个注册表操作系列函数:RegLoad、RegOpen、RegRead、RegWrite* ---- RegLoad.PRGPRIVATE ALLcError = ON("ERROR")nError = 0ON ERROR STORE -1 TO nErrorCLEAR DLLS*---- 打开键DECLARE Integer RegOpenKey IN Win32API ; Integer nHKey, String @cSubKey, Integer @nResultON ERROR &cErrorIF nError = -1 RETURN -1ENDIF *---- 创建键DECLARE Integer RegCreateKey IN Win32API ; Integer nHKey, String @cSubKey, Integer @nResult *---- 删除键DECLARE Integer RegDeleteKey IN Win32API ; Integer nHKey, String @cSubKey *---- DECLARE Integer RegDeleteValue IN Win32API ; Integer nHKey, String cSubKeyDECLARE Integer RegCloseKey IN Win32API ; Integer nHKey *---- 写入注册表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 @lpcbDataDECLARE Integer RegEnumKey IN Win32API ; Integer nHKey,Integer iSubKey, String @lpszName, Integer @cchNameDECLARE Integer RegEnumKeyEx IN Win32API ; Integer nHKey,Integer iSubKey, String @lpszName, Integer @cchName,; Integer dwReserved,String @lpszName, Integer @cchName,String @cchNameDECLARE Integer RegEnumValue IN Win32API ; Integer hKey, Integer iValue, String @lpszValue, ; Integer @lpcchValue, Integer lpdwReserved, Integer @lpdwType, ; String @lpbData, Integer @lpcbDataRETURN 0* ------ RegOpen.PRGLPARAMETER tcLookUpKey,tnRegKey,tlCreateKey** 创建或打开注册表键* 成功操作返回子键值,失败返回 0* 运行前需要执行 RegLoadWin32*PRIVATE ALLIF EMPTY(tnRegKey) tnRegKey = -2147483646 && HKEY_LOCAL_MACHINEENDIFnSubKey = 0IF tlCreateKey = RegCreateKey(tnRegKey,tcLookUpKey,@nSubKey)ELSE = RegOpenKey(tnRegKey,tcLookUpKey,@nSubKey)ENDIFRETURN nSubKey* --- RegRead.PRGLPARAMETER tcPath,tcName,tnRegKey** 读取失败时返回 -1,没有读到时返回 0,读取成功返回结果**#DEFINE HKEY_CLASSES_ROOT -2147483648 && BITSET(0,31)#DEFINE HKEY_CURRENT_USER -2147483647 && BITSET(0,31) + 1#DEFINE HKEY_LOCAL_MACHINE -2147483646 && BITSET(0,31) + 2#DEFINE HKEY_USERS -2147483645 && BITSET(0,31) + 3#DEFINE HKEY_CURRENT_CONFIG -2147483643 && BITSET(0,31) + 5PRIVATE ALLIF RegLoad() = -1 = MessageBox("装入 Win32API 失败!", 48, "错误") RETURN -1ENDIF*---- 在 HKEY_LOCAL_MACHINE 下nSubKey = RegOpen(tcPath,tnRegKey,.T.)IF nSubKey = 0 = MessageBox("读取注册表失败!", 48, "错误") RETURN -1ENDIFlpdwType = 0lpdwReserved = 0lpbData = SPACE(254)lpcbData = 254*nError = RegQueryValueEx(nSubKey,tcName,0,@lpdwType,@lpbData,@lpcbData)nError = RegQueryValueEx(nSubKey,tcName,lpdwReserved,@lpdwType,@lpbData,@lpcbData)= RegCloseKey(nSubKey)CLEAR DLLSIF nError # 0 RETURN 0ELSE lpbData = LEFT(lpbData,lpcbData-1) RETURN lpbDataENDIF* ---- RegWrite.PRGLPARAMETER tcPath,tcName,tcValue** 成功返回真,失败返回假*PRIVATE ALLIF RegLoad() = -1 = MessageBox("装入 Win32API 失败!", 48, "错误") RETURN .F.ENDIF*---- 在 HKEY_LOCAL_MACHINE 下nSubKey = RegOpen(tcPath,,.T.)IF nSubKey = 0 = MessageBox("读取注册表失败!", 48, "错误") RETURN .F.ENDIFtcValue = tcValuenValueSize = LEN(tcValue)nError = RegSetValueEx(nSubKey,tcName,0,1,tcValue,nValueSize)= RegCloseKey(nSubKey)CLEAR DLLSRETURN (nError=0) 这个的功能应该怎么实现? 求高手帮忙简化SQL语句 有解释的清楚的高手吗 高分跪求,如何建立个作业自动压缩日志。 把一个表 生成SQL脚本 【SQL 2005】相同ID的两行 合并为一行,可以吗? 选择每个班级中身高最高的两个人 紧急求救,整个项目就差这一个问题了,急 sql server 2008 加密 用SQL語句怎樣查詢表中編號字段(BH)第三個字母為"A"的記錄? 求求大家了,帮帮我吧! 此两句SQL语句有何不同(执行动作、结果集)
PRIVATE ALL
cError = ON("ERROR")
nError = 0
ON ERROR STORE -1 TO nError
CLEAR DLLS
*---- 打开键
DECLARE Integer RegOpenKey IN Win32API ;
Integer nHKey, String @cSubKey, Integer @nResult
ON ERROR &cError
IF nError = -1
RETURN -1
ENDIF
*---- 创建键
DECLARE Integer RegCreateKey IN Win32API ;
Integer nHKey, String @cSubKey, Integer @nResult
*---- 删除键
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
*---- 写入注册表
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 RegEnumKey IN Win32API ;
Integer nHKey,Integer iSubKey, String @lpszName, Integer @cchName
DECLARE Integer RegEnumKeyEx IN Win32API ;
Integer nHKey,Integer iSubKey, String @lpszName, Integer @cchName,;
Integer dwReserved,String @lpszName, Integer @cchName,String @cchName
DECLARE Integer RegEnumValue IN Win32API ;
Integer hKey, Integer iValue, String @lpszValue, ;
Integer @lpcchValue, Integer lpdwReserved, Integer @lpdwType, ;
String @lpbData, Integer @lpcbData
RETURN 0* ------ RegOpen.PRG
LPARAMETER tcLookUpKey,tnRegKey,tlCreateKey
*
* 创建或打开注册表键
* 成功操作返回子键值,失败返回 0
* 运行前需要执行 RegLoadWin32
*
PRIVATE ALL
IF EMPTY(tnRegKey)
tnRegKey = -2147483646 && HKEY_LOCAL_MACHINE
ENDIF
nSubKey = 0
IF tlCreateKey
= RegCreateKey(tnRegKey,tcLookUpKey,@nSubKey)
ELSE
= RegOpenKey(tnRegKey,tcLookUpKey,@nSubKey)
ENDIF
RETURN nSubKey
* --- RegRead.PRG
LPARAMETER tcPath,tcName,tnRegKey
*
* 读取失败时返回 -1,没有读到时返回 0,读取成功返回结果
*
*
#DEFINE HKEY_CLASSES_ROOT -2147483648 && BITSET(0,31)
#DEFINE HKEY_CURRENT_USER -2147483647 && BITSET(0,31) + 1
#DEFINE HKEY_LOCAL_MACHINE -2147483646 && BITSET(0,31) + 2
#DEFINE HKEY_USERS -2147483645 && BITSET(0,31) + 3
#DEFINE HKEY_CURRENT_CONFIG -2147483643 && BITSET(0,31) + 5PRIVATE ALL
IF RegLoad() = -1
= MessageBox("装入 Win32API 失败!", 48, "错误")
RETURN -1
ENDIF*---- 在 HKEY_LOCAL_MACHINE 下
nSubKey = RegOpen(tcPath,tnRegKey,.T.)
IF nSubKey = 0
= MessageBox("读取注册表失败!", 48, "错误")
RETURN -1
ENDIF
lpdwType = 0
lpdwReserved = 0
lpbData = SPACE(254)
lpcbData = 254
*nError = RegQueryValueEx(nSubKey,tcName,0,@lpdwType,@lpbData,@lpcbData)
nError = RegQueryValueEx(nSubKey,tcName,lpdwReserved,@lpdwType,@lpbData,@lpcbData)
= RegCloseKey(nSubKey)
CLEAR DLLS
IF nError # 0
RETURN 0
ELSE
lpbData = LEFT(lpbData,lpcbData-1)
RETURN lpbData
ENDIF
* ---- RegWrite.PRGLPARAMETER tcPath,tcName,tcValue
*
* 成功返回真,失败返回假
*
PRIVATE ALL
IF RegLoad() = -1
= MessageBox("装入 Win32API 失败!", 48, "错误")
RETURN .F.
ENDIF*---- 在 HKEY_LOCAL_MACHINE 下
nSubKey = RegOpen(tcPath,,.T.)
IF nSubKey = 0
= MessageBox("读取注册表失败!", 48, "错误")
RETURN .F.
ENDIF
tcValue = tcValue
nValueSize = LEN(tcValue)
nError = RegSetValueEx(nSubKey,tcName,0,1,tcValue,nValueSize)
= RegCloseKey(nSubKey)
CLEAR DLLS
RETURN (nError=0)