Текущий архив: 2007.03.04;
Скачать: CL | DM;
Вниз
Как программно узнать зарегистрирован ли COM объект по имени Найти похожие ветки
← →
Apachi (2007-01-11 17:37) [0]Уважаемые мастера
Как программно узнать зарегистрирован (существует ли) ли COM объект по указанному имени
← →
Джо © (2007-01-11 17:39) [1]ProgIDToClassID
CreateComObject
← →
tesseract © (2007-01-11 17:40) [2]
> Как программно узнать зарегистрирован (существует ли) ли
> COM объект по указанному имени
я думаю имеется в виду OLE.
Очень просто
if CreateOleObject("server.classname")= nil then неустановлен.
← →
Apachi (2007-01-11 17:47) [3]to tesseract ©
если я указываю в качестве строки "server.classname" имя ком объекта не зарегистрированного в системе то выдает ошибку "Недопустипая строка с указанием класса"
в try except ее пложить что ли
← →
Руссо Партизано (2007-01-11 17:57) [4]
> 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;
Усё!
← →
tesseract © (2007-01-11 18:02) [5]
> Руссо Партизано (11.01.07 17:57) [4]
Читай внимательнее. Нужно узнать есть ли он в системе.
> в try except ее пложить что ли
Ну в общем да :-)
← →
Джо © (2007-01-11 18:09) [6]Так-то оно лучше будет, без эксептов-то ;)
function IsRegistered (const AClassName: string): Boolean;
var
Dummy: TGuid;
begin
Result := Succeeded(CLSIDFromProgID (PWideChar(WideString(AClassName)),Dummy))
end;
Страницы: 1 вся ветка
Текущий архив: 2007.03.04;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.079 c