在软件开发过程中,经常需要处理各种对象,这些对象可能是通过ProgID或CLSID来标识的。为了帮助开发者更高效地管理和引用这些对象,开发了一款名为ObjectLookup的实用工具。这款工具能够根据给定的ProgID或CLSID,快速找到对应的类名和可执行文件,从而简化了在Visual Basic或C++项目中引用对象的过程。
ObjectLookup工具在最近的更新中,不仅增强了其核心功能,还对用户界面进行了优化。例如,现在默认情况下,ProgID字段会自动获得焦点,用户可以通过快捷键快速操作,提高了工作效率。
ObjectLookup工具的主要应用场景包括:
虽然通过注册表编辑器也可以手动获取这些信息,但ObjectLookup工具可以大大简化这个过程,减少不必要的麻烦。
ObjectLookup的源代码是完全开放的,可以自由地修改和使用,只要不将其用于商业销售。该程序是用Microsoft VisualC++v. 6.0 SP3在Windows 2000上编译的。
ObjectLookup的实现得益于Joerg Koenig编写的一个非常出色的注册表类。
#include "Registry.h"
int main() {
Registry reg;
CString clsid;
CString progid = "YourProgIDHere";
CString executablePath;
if (reg.OpenKey(HKEY_CLASSES_ROOT, progid + "\\CLSID") == ERROR_SUCCESS) {
reg.QueryValue(NULL, clsid);
reg.CloseKey();
if (reg.OpenKey(HKEY_CLASSES_ROOT, clsid + "\\InprocServer32") == ERROR_SUCCESS) {
reg.QueryValue(NULL, executablePath);
reg.CloseKey();
}
}
if (!executablePath.IsEmpty()) {
printf("CLSID: %s\nExecutable Path: %s\n", (LPCTSTR)clsid, (LPCTSTR)executablePath);
} else {
printf("CLSID or Executable Path not found.\n");
}
return 0;
}