Главная страница
    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.45 MB
Время: 0.007 c
1-95417
EugenCFG
2002-07-13 14:04
2002.07.29
Как вывести изображение на против каждого Item в RXCheckListBox


7-95576
KPbIC
2002-05-12 03:46
2002.07.29
Enable/disable divice


7-95578
Лёха
2002-05-12 21:08
2002.07.29
Всеи хай! Народ, если кто-нить знает как узнать свойства чужого..


8-95458
vajo
2002-03-21 07:15
2002.07.29
Определение цвета точки в GIF


1-95293
BlackGrin
2002-07-15 11:06
2002.07.29
Определение нажатого кнопки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский