到注册表中找... uses ComObj;function TForm1.GetPath(xClsName: string): string; begin //xClsName is like "MyClass.Class1" Result := GetRegStringValue('\'+xClsName+'\Clsid', ''); if Result <> '' then begin Result := GetRegStringValue('\CLSID\'+Result+'\InprocServer32', ''); //DLL if Result = '' then begin Result := GetRegStringValue('\'+xClsName+'\Clsid', ''); Result := GetRegStringValue('\CLSID\'+Result+'\LocalServer32', ''); //EXE end; end; end;
把com+的Dll放到System32下,注册后,程序就能找到.
uses
ComObj;function TForm1.GetPath(xClsName: string): string;
begin
//xClsName is like "MyClass.Class1"
Result := GetRegStringValue('\'+xClsName+'\Clsid', ''); if Result <> '' then
begin
Result := GetRegStringValue('\CLSID\'+Result+'\InprocServer32', ''); //DLL if Result = '' then
begin
Result := GetRegStringValue('\'+xClsName+'\Clsid', '');
Result := GetRegStringValue('\CLSID\'+Result+'\LocalServer32', ''); //EXE
end;
end;
end;