Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
ВнизКак отследить из приложения - что на машине запущен Excel? Найти похожие ветки
← →
СержК (2004-10-20 16:33) [0]Как отследить из приложения - что на машине запущен Excel?
← →
Гаврила © (2004-10-20 16:36) [1]GetActiveOleObject - проверка на существование
← →
Digitman © (2004-10-20 16:40) [2]
> СержК
в общем случае - никак
в частном случае - получив из реестра полный путь к исп.файлу Ехела и, перечислив работающие процессы, обнаружиьть средь них искомый
← →
СержК (2004-10-20 16:42) [3]Уточню вопрос.
Мне нужно знать, что Excel не запущен не только из моей программы, но вообще не запущен на машине.
← →
Digitman © (2004-10-20 16:48) [4]
> Уточню вопрос.
> Мне нужно знать, что Excel не запущен не только из моей
> программы, но вообще не запущен на машине.
грош цена этому "уточнению"
Ехел-процесс либо работает (в одном или более экземплярах) либо не работает в принципе ... и не важно откуда он "запущен"
← →
Pentium133 © (2004-10-20 17:06) [5]
MessageDlg(mtConfirmation, "Запущен ли Exel?" [mbYes, mbNo], 0)
← →
YurikGL © (2004-10-20 17:29) [6]
> в общем случае - никак
Ну не самый общий случай... Но все же...ExcelApplication1:TExcelApplication;
ExcelApplication1.ConnectKind:=ckRunningInstance;
try
ExcelApplication1.Connect;
ExcelApplication1.Disconnect;
showmessage("Ексель работает");
except
showmessage("Ексель не работает ");
end;
Так как-то можно еще через createOleObject сделать, но боюсь ошибиться.
← →
Jeer © (2004-10-20 17:32) [7]Да ладно вам:
uses ComObj;
..
function TAForm.IsXLSActive : Boolean;
var
Xls : Variant;
begin
Xls := GetActiveOleObject ("Excel.Application");
Result := not VarIsNull(Xls);
end;
procedure TAForm.Button1Click(Sender: TObject);
begin
try
if IsXLSActive then ShowMessage("Is active")
except
ShowMessage("Not active")
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.06 c