Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.07;
Скачать: CL | DM;

Вниз

Как узнать путь к com серверу?   Найти похожие ветки 

 
kull ©   (2003-04-23 16:41) [0]

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


 
REA ©   (2003-04-23 16:43) [1]

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


 
kull ©   (2003-04-23 16:48) [2]

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


 
REA ©   (2003-04-23 16:55) [3]

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


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

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

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


 
Bel ©   (2003-04-23 17:05) [5]

Можно по реестру. Показываю на примере моей машины:
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"


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

Приблизительно так
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(""); // путь к файлу


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

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


 
kull ©   (2003-04-23 17:36) [8]

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



Страницы: 1 вся ветка

Текущий архив: 2003.07.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-20110
clickmaker
2003-06-24 12:16
2003.07.07
Альтернативы CoMarshalInterThreadInterfaceInStream


1-20088
AndrewK
2003-06-24 13:35
2003.07.07
Как узнать где лежит DLL из самой DLL?


14-20296
Юрий Зотов
2003-06-19 17:55
2003.07.07
А погода-то наладилась (и снова встреча в Москве)...


1-20072
hex_for_delphi
2003-06-24 00:37
2003.07.07
как загружать из внешнего файла в масив и обратно.


7-20325
Mikes
2003-04-23 13:11
2003.07.07
Как узнать BIOS ID