请教关于PB 修改注册表的问题
这个问题可能有点幼稚,不过我是一句一句分析的,我自己测试得到时候确实是无法实现才来提出这个问题,且听我说来目的是在没有安装AHA的机器里运行PB生成的程序
还要在注册表里注册AHA还有建立源
string ls_drivervalue
string appdir
appdir="F:\Customer\runtime\dbodbc8.dll"
RegistryGet(l"HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Drivers","Adaptive Server Anywhere 4.0",regstring!,ls_drivervalue)
if ls_drivervalue<>"Adaptive Server Anywhere 4.0" then
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Drivers","Adaptive Server Anywhere 4.0",RegString!,"Installed")
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 4.0","Driver",RegString!,appdir)
RegistrySet("HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Adaptive Server Anywhere 4.0","Setup",RegString!,appdir)
end if
按我的理解,这里是在HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Drivers下查找Adaptive Server Anywhere 4.0
如果没有找到就开始建立变量,这里为了在自己机器里测试,我将Adaptive Server Anywhere 8.0改为4.0 测试用
执行程序后
"Adaptive Server Anywhere 4.0",的字符串值"Installed"建立是成功的,
下面2句没有效果
根据我个人的想法,这里好像缺少了一个在此目录建立"Adaptive Server Anywhere 4.0"目录的一条语句,在注册表里叫项的东西
建立了项才能设置值
是不是有这么条语句?
RegistrySet研究了他的多种valuetype 好像都不行
特此请教
注册表的项,就相当于目录的意思。一般说,建目录的目的是放文件,而注册表好像没有单独建项的,也就是说要直接建文件,只要那个“路径”写上,就会自动建立的。
在平时,应该用RegistrySet RegistryGet多些 楼主可以先手动建立一个odbc的数据源,然后打开注册表,搜索刚建立的数据源名称,会找到这个数据源下面的所有键值,记录下来,然后删除该数据源,再在pb下用RegistrySet一个一个注册,就ok了 j528 发表于 2015-3-11 11:31
楼主可以先手动建立一个odbc的数据源,然后打开注册表,搜索刚建立的数据源名称,会找到这个数据源下面的所 ...
我就是这么操作的
就是没有建立目录功能
我按网上教程运行后并没有出现下面的2条变量
ehxz 发表于 2015-3-10 22:45
注册表的项,就相当于目录的意思。一般说,建目录的目的是放文件,而注册表好像没有单独建项的,也就是说要 ...
嗯明白了
原来第二第三条要重新启动电脑才能看到
真是想多了
万分感谢
页:
[1]