Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.56 MB
Время: 0.028 c
3-95262
Макс
2002-07-09 14:31
2002.07.29
Хитрое выделение из списка


3-95256
Nikolka
2002-07-09 11:33
2002.07.29
Не запускается приложение с локальной БД


1-95341
Spooky
2002-07-15 17:05
2002.07.29
Что за библиотека qtintf.dll


4-95613
MemoryLeak
2002-05-22 05:29
2002.07.29
Как уведомить DLL`ки чужого процесса о его завершении?


1-95350
Still Swamp
2002-07-17 21:03
2002.07.29
MSExcel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский