bigfrog 发表于 2015-3-10 22:03:28

请教关于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 好像都不行
特此请教




ehxz 发表于 2015-3-10 22:45:28

注册表的项,就相当于目录的意思。一般说,建目录的目的是放文件,而注册表好像没有单独建项的,也就是说要直接建文件,只要那个“路径”写上,就会自动建立的。
在平时,应该用RegistrySet RegistryGet多些

j528 发表于 2015-3-11 11:31:24

楼主可以先手动建立一个odbc的数据源,然后打开注册表,搜索刚建立的数据源名称,会找到这个数据源下面的所有键值,记录下来,然后删除该数据源,再在pb下用RegistrySet一个一个注册,就ok了

bigfrog 发表于 2015-3-11 14:13:09

j528 发表于 2015-3-11 11:31
楼主可以先手动建立一个odbc的数据源,然后打开注册表,搜索刚建立的数据源名称,会找到这个数据源下面的所 ...

我就是这么操作的
就是没有建立目录功能
我按网上教程运行后并没有出现下面的2条变量

bigfrog 发表于 2015-3-11 14:15:36

ehxz 发表于 2015-3-10 22:45
注册表的项,就相当于目录的意思。一般说,建目录的目的是放文件,而注册表好像没有单独建项的,也就是说要 ...

嗯明白了
原来第二第三条要重新启动电脑才能看到
真是想多了
万分感谢
页: [1]
查看完整版本: 请教关于PB 修改注册表的问题

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com