首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不知道注册表路径vb6的情况下查找注册表值?

如何在不知道注册表路径vb6的情况下查找注册表值?
EN

Stack Overflow用户
提问于 2012-01-05 15:41:19
回答 3查看 2K关注 0票数 0

我有一个编译VB6代码的动态链接库(用vb6编写)。我正在从注册表中读取VB6.exe路径,它工作正常。

代码语言:javascript
复制
m_oRegTool.RegistryPath = "Applications\vb6.exe\shell\make\command"

sVB6EXEFile = m_oRegTool.GetValueData("", "")

问题是VB6.exe路径位于XP和win 7 (64位)注册表中的不同位置。你知道如何在注册表中找到VB6.exe而不指定注册表中的位置吗?

谢谢,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-05 17:00:51

我认为(在标准安装中,如果用户没有更改默认设置)以下注册表项将包含可执行文件的路径:

代码语言:javascript
复制
HKEY_CLASSES_ROOT\VisualBasic.Project\shell\open\command

此键中的默认值包含vbp文件的open命令-在我的机器上:

代码语言:javascript
复制
"C:\Program Files (x86)\Microsoft Visual Studio\VB98\vb6.exe" "%1"

因此,您只需删除"%1“和其他双引号即可获得路径

票数 2
EN

Stack Overflow用户

发布于 2012-01-05 18:33:23

您可以从安装程序写入的注册表值中获取VB6安装文件夹:

代码语言:javascript
复制
HKLM\SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic\ProductDir

在我的机器上,这个值是C:\Program Files\Microsoft Visual Studio\VB98

在我的BuilderPro项目中,有一个示例(C#)代码可以获取此路径。

票数 2
EN

Stack Overflow用户

发布于 2012-01-05 17:33:46

我不知道你为什么要弄乱Shell的注册表项。

您应该能够使用Shell32的COM接口或标准导出入口点对适当的文件(通常是.VBP)调用"make“动词。导航到.VBP的Shell Folderitem并对其调用InvokeVerb方法,或者调用ShellExecute/Ex,传递文件路径和"make“动词。

不需要搜索注册表,而且您正在使用文档记录的API!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8739137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档