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

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

Как программно узнать зарегистрирован ли COM объект по имени [D7]


Apachi ©   (2007-01-11 17:37:00) 

Уважаемые мастера
Как программно узнать зарегистрирован (существует ли) ли COM объект по указанному имени


Джо   (2007-01-11 18:09:00) [1]

Так-то оно лучше будет, без эксептов-то ;)

function IsRegistered (const AClassName: string): Boolean;
var
 Dummy: TGuid;
begin
 Result := Succeeded(CLSIDFromProgID (PWideChar(WideString(AClassName)),Dummy))
end;


tesseract   (2007-01-11 18:02:00) [2]


> Руссо Партизано   (11.01.07 17:57) [4]


Читай внимательнее. Нужно узнать есть ли он в системе.


> в try except ее пложить что ли


Ну в общем да :-)


Руссо Партизано   (2007-01-11 17:57:00) [3]


> Apachi   (11.01.07 17:47) [3]

Именно!

Получится что-то типа этого:

var:
 oApp: OleVariant;
 oDoc: OleVariant;
...
begin
 Result := False;
 try
   oApp := GetActiveOleObject('Word.Application');
 except
   oApp := CreateOleObject('Word.Application');
 end;
 oApp.Documents.Open(FileName);
 oDoc:=oApp.ActiveDocument;
...

не забудь в конце

 oApp.ActiveDocument.Close(wdDoNotSaveChanges, EmptyParam, EmptyParam);
 oApp.Quit(EmptyParam, EmptyParam, EmptyParam);
end;

Усё!


Apachi   (2007-01-11 17:47:00) [4]

to tesseract ©

если я указываю в качестве строки 'server.classname' имя ком объекта не зарегистрированного в системе то выдает ошибку "Недопустипая строка с указанием класса"
в try except ее пложить что ли


tesseract   (2007-01-11 17:40:00) [5]


> Как программно узнать зарегистрирован (существует ли) ли
> COM объект по указанному имени


я думаю имеется в виду OLE.

Очень просто

if CreateOleObject('server.classname')= nil  then неустановлен.


Джо   (2007-01-11 17:39:00) [6]

ProgIDToClassID
CreateComObject


Наверх

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