Форум: "Основная";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];
ВнизАвтоматический запуск 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c