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

Вниз

Автоматический запуск Excel   Найти похожие ветки 

 
Руль   (2002-07-15 19:11) [0]

Могу управлять программой Эксель но не знаю как с помощью своей программы обнаружить есть ли Экасель в компьютере и запустить автоматически, самое инетересное, что как закрыватья я знаю.


 
Pingo ©   (2002-07-16 05:06) [1]

Если ты идешь через палитру Servers, то у них есть свойство:
ConnectKind.

Если через OLE, то существуют функции типа
ConnectionResult, Connection.
Дальше в зависимости от ситуации либо работа с Excel,
либо CreateOleObject("Excel.Application"), а затем работа с Excel.


 
Tornado ©   (2002-07-16 08:03) [2]

Установлен ли Excel на машине?

Функция возвращает True если найден OLE-объект
Пример использования

if not IsOLEObjectInstalled("Excel.Application") then
ShowMessage("Класс не зарегистрирован")
else
ShowMessage("Класс найден");


function IsOLEObjectInstalled(Name: String): boolean;
var
ClassID: TCLSID;
Rez : HRESULT;
begin
// Ищем CLSID OLE-объекта
Rez := CLSIDFromProgID(PWideChar(WideString(Name)), ClassID);

if Rez = S_OK then // Объект найден
Result := true
else
Result := false;
end;


Если нужна более подробная информация об объекте, можно почитать хелп по функции API CLSIDFromProgID.


 
BAY ©   (2002-07-16 10:06) [3]

А как сделать тоже, но при ранем связывании?


 
Emfi   (2002-07-16 14:07) [4]

А какая разница с помощью раннего или позднего связывания узнавать установлен Excel или нет ? Вызвал функцию, которая тут выше расписана и проверил, а потом уже задействуй хоть раннее, хоть позднее ...


 
olookin ©   (2002-07-16 15:39) [5]

У меня, кстати, такая фига: я могу проверить наличие запущенного Excel, но только при независимой от Delphi работе программы. Т.е. если я компилирую, то ошибка "Процесс недоступен", а если просто запускаю, то все ОК. Причем стоит проверка на ошибку типа EOleSysError. Но это я так, для справки.
А вообще можно получить список уже запущенных процессов, а если среди них есть EXCEL.EXE, то ясно, что он уже запущен (использовать надо Snapshot-ы).


 
Tornado ©   (2002-07-16 16:09) [6]

Данный пример ищет активный экземпляр Excel и делает его видимым

var
ExcelApp : Variant;
begin
try
// Ищем запущеный экземплят Excel, если он не найден, вызывается исключение
ExcelApp := GetActiveOleObject("Excel.Application");

// Делаем его видимым
ExcelApp.Visible := true;
except
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
4-95617
Dorex
2002-05-20 09:57
2002.07.29
Надо добавить кнопку в заголовок окна.


1-95363
Loco
2002-07-14 16:05
2002.07.29
Исключения


1-95380
EugenCFG
2002-07-15 19:44
2002.07.29
Как в RichEdit изменить цвета отдельных строк....


4-95609
Turalyon
2002-05-21 14:24
2002.07.29
Каталог пользователя


1-95433
eruc
2002-07-16 18:16
2002.07.29
XML ????