Elemental
2003-05-19, 13:28:30
Hallo Leute,
ich versuche gerade verzweifelt, den Pfad einer dll aus der registry zu lesen. Der Pfad steht im key "(Standard)", aber irgendwie kann man den nicht auslesen. Habs so versucht:
bool bTakePathFromRegistry = false;
// Look for special path into registry
CRegKey reg;
TCHAR szFilePath[200];
szFilePath[0] = _T('\0');
if (reg.Open(HKEY_CLASSES_ROOT, _T("CLSID\\{04E5C02B-4C56-47B8-ABFC-E89DCF81A881}\\InprocServer32")) == ERROR_SUCCESS)
{
DWORD len = sizeof(szFilePath) / sizeof (szFilePath[0]);
if (reg.QueryValue(szFilePath, _T("(Standard)"), &len) == ERROR_SUCCESS)
{
// Was able to read the value
if (_tcslen(szFilePath) > 0)
{
// only if is set to something
bTakePathFromRegistry = true;
}
// Remember to close it when done
reg.Close();
}
}
Wenn ich statt "(Standard)" "ThreadingModel" auslese funktioniert es auf diesem Weg aber wunderbar.
Kann mir hier jemand weiterhelfen?
Gruss
Elemental
edit:
Hab den entsprechenden registry-eintrag mal exportiert. Im file steht dann:
[HKEY_CLASSES_ROOT\CLSID\{04E5C02B-4C56-47B8-ABFC-E89DCF81A881}\InprocServer32]
@="Pfad\\Dateiname.dll"
"ThreadingModel"="Apartment"
Allerdings funktioniert es auch nicht, wenn ich statt "(Standard)" "@" in meinen Code da oben einsetze ???
ich versuche gerade verzweifelt, den Pfad einer dll aus der registry zu lesen. Der Pfad steht im key "(Standard)", aber irgendwie kann man den nicht auslesen. Habs so versucht:
bool bTakePathFromRegistry = false;
// Look for special path into registry
CRegKey reg;
TCHAR szFilePath[200];
szFilePath[0] = _T('\0');
if (reg.Open(HKEY_CLASSES_ROOT, _T("CLSID\\{04E5C02B-4C56-47B8-ABFC-E89DCF81A881}\\InprocServer32")) == ERROR_SUCCESS)
{
DWORD len = sizeof(szFilePath) / sizeof (szFilePath[0]);
if (reg.QueryValue(szFilePath, _T("(Standard)"), &len) == ERROR_SUCCESS)
{
// Was able to read the value
if (_tcslen(szFilePath) > 0)
{
// only if is set to something
bTakePathFromRegistry = true;
}
// Remember to close it when done
reg.Close();
}
}
Wenn ich statt "(Standard)" "ThreadingModel" auslese funktioniert es auf diesem Weg aber wunderbar.
Kann mir hier jemand weiterhelfen?
Gruss
Elemental
edit:
Hab den entsprechenden registry-eintrag mal exportiert. Im file steht dann:
[HKEY_CLASSES_ROOT\CLSID\{04E5C02B-4C56-47B8-ABFC-E89DCF81A881}\InprocServer32]
@="Pfad\\Dateiname.dll"
"ThreadingModel"="Apartment"
Allerdings funktioniert es auch nicht, wenn ich statt "(Standard)" "@" in meinen Code da oben einsetze ???