Главная страница
    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-95407
hooch
2002-07-16 12:11
2002.07.29
Фреймы в dll (D6, WinXP)


1-95394
AlexanderVasjuk
2002-07-15 16:55
2002.07.29
Lame API


6-95473
MixerPro
2002-04-17 08:39
2002.07.29
Помогите с MNPOP3


1-95347
roman002
2002-07-18 10:15
2002.07.29
Объем занимаемого пространства


3-95193
_dron_
2002-07-05 19:40
2002.07.29
Подскажите, плз, побыстрее две базы в Interbase (локальные)





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