Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать путь к com серверу?


kull ©   (2003-04-23 16:41:00) 

Создал я объект функцией CreateComObject.
Как узнать путь к этому com серверу?


kull   (2003-04-23 17:36:00) [1]

Спасибо! Пожалуй так и сделаю.
Хотя надеялся, что можно более легальным способом.


Goffman   (2003-04-23 17:29:00) [2]

Каждый COM объект обязан иметь GUID.
С помощью него винда определяет где искать сей COM object.
Для Word.Application CLSID={000209FF-0000-0000-C000-000000000046}
GUID"ы хранятся в реестре в ключе HKCR\CLSID\
В ключе любого GUID есть вложенный LocalServer32.
Его значение и определяет путь оле-сервера


Serginio   (2003-04-23 17:24:00) [3]

Приблизительно так
Var ClassID: TCLSID;

FileDll:String;
Begin
CLSIDFromProgID(ClassName, ClassID);
Reg:=Tregistry.Create;
Reg.RootKey := HKEY_Classes_ROOT;
If reg.OpenKey("CLSID\"+GuidToString(ClassID++"\InprocServer32",False) Then
Begin
FileDll:=reg.ReadString(""); // путь к файлу


Bel   (2003-04-23 17:05:00) [4]

Можно по реестру. Показываю на примере моей машины:
HKEY_CLASSES_ROOT\Word.Application\CurVer = "Word.Application.9"
HKEY_CLASSES_ROOT\Word.Application.9\CLSID = "{000209FF-0000-0000-C000-000000000046}"
HKEY_CLASSES_ROOT\CLSID\{000209FF-0000-0000-C000-000000000046}\LocalServer32 = "C:\PROGRA~1\MICROS~1\OFFICE\WINWORD.EXE /Automation"


kull   (2003-04-23 17:00:00) [5]

ХОРОШО тогда вопрос такой: как узнать путь "X:\Program Files\Microsoft Office\Office\Startup".
Ведь я могу поставить word и на диск C и на диск D или еще куда...

Мне нге нужен сам winword.exe, мне нужен путь к нему...


REA   (2003-04-23 16:55:00) [6]

В принципе регистрационная информация есть в реестре, но для использования Winword нет необходимости знать где он расположен.


kull   (2003-04-23 16:48:00) [7]

Хорошо тогда вопрос такой как узнать путь, куда установлен winword.exe ?


REA   (2003-04-23 16:43:00) [8]

А это видимо вредно для здоровья. OS должна сама сервер находить вне зависиости от того где он расположен (на этой машине, на соседней, на нескольких).


Наверх

Титульная страница Поиск, карта сайта Написать письмо