我有一个编译VB6代码的动态链接库(用vb6编写)。我正在从注册表中读取VB6.exe路径,它工作正常。
m_oRegTool.RegistryPath = "Applications\vb6.exe\shell\make\command"
sVB6EXEFile = m_oRegTool.GetValueData("", "")问题是VB6.exe路径位于XP和win 7 (64位)注册表中的不同位置。你知道如何在注册表中找到VB6.exe而不指定注册表中的位置吗?
谢谢,
发布于 2012-01-05 17:00:51
我认为(在标准安装中,如果用户没有更改默认设置)以下注册表项将包含可执行文件的路径:
HKEY_CLASSES_ROOT\VisualBasic.Project\shell\open\command此键中的默认值包含vbp文件的open命令-在我的机器上:
"C:\Program Files (x86)\Microsoft Visual Studio\VB98\vb6.exe" "%1"因此,您只需删除"%1“和其他双引号即可获得路径
发布于 2012-01-05 18:33:23
您可以从安装程序写入的注册表值中获取VB6安装文件夹:
HKLM\SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic\ProductDir在我的机器上,这个值是C:\Program Files\Microsoft Visual Studio\VB98
在我的BuilderPro项目中,有一个示例(C#)代码可以获取此路径。
发布于 2012-01-05 17:33:46
我不知道你为什么要弄乱Shell的注册表项。
您应该能够使用Shell32的COM接口或标准导出入口点对适当的文件(通常是.VBP)调用"make“动词。导航到.VBP的Shell Folderitem并对其调用InvokeVerb方法,或者调用ShellExecute/Ex,传递文件路径和"make“动词。
不需要搜索注册表,而且您正在使用文档记录的API!
https://stackoverflow.com/questions/8739137
复制相似问题